我這里已經(jīng)明白了是因為線程不能被復制#include <iostream>#include <thread>#include <vector>using namespace std;void Func() { cout << "hello world" << endl;
}int main() { vector<thread> tmp; for (int i = 0; i < 5; i++)
{
tmp[i] = thread(Func);
} for (auto it : tmp)
{ //
}
}于是我嘗試使用迭代器像這樣#include <iostream>#include <thread>#include <vector>using namespace std;void Func() { cout << "hello world" << endl;
}int main() { vector<thread> tmp; for (int i = 0; i < 5; i++)
{
tmp[i] = thread(Func);
} for (auto it = tmp.begin(); it != tmp.end(); it++)
{
it->join();
}
}但是運行結(jié)果得到段錯誤,請問是為什么
c++11 auto遍歷存儲線程vector
GCT1015
2018-07-22 13:22:23