我这里已经明白了是因为线程不能被复制
#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();
}
}但是运行结果得到段错误,请问是为什么
AAnonymous
呼唤远方
相关分类