如果这个问题看起来很简单,我很抱歉。我仍然在学习线程。我已经尝试过在这里寻找解决方案,但没有找到任何解决方案。我试图让我的程序根据用户输入创建一些线程(例如:“cin >> 5”将创建5个线程),但它说“我在”线程myThreads [我] “需要是一个不变的价值。代码如下:程序根据用户输入不工作(cin)创建一些线程?
void exec(int n)
{
cout << "Thread " << n << endl;
}
int main()
{
int numThreads = 0;
// create threads
cin >> numThreads;
thread myThreads[numThreads]; // this part says myThreads "must be a constant value"
for (int i = 0; i < numThreads; i++)
{
myThreads[i] = thread(exec, i);
}
for (int i = 0; i < numThreads; i++)
{
myThreads[i].join();
}
cout << "Done!" << endl;
}
有关如何修复该部分的任何想法?我尝试了几种不同的方法,但迄今为止还没有奏效。非常感谢你。
你试过使用'std :: vector'吗? (例如'std :: vector myThreads(numThreads);') –