この質問が簡単であれば謝罪します。私はまだスレッドについて学んでいます。私はすでにここでこれに対する解決策を探してみましたが、何も見つかりませんでした。ユーザー入力に基づいて多数のスレッドを作成するプログラムは動作しません(cin)?
ユーザー入力(例: "cin >> 5"は5つのスレッドを作成します)に基づいてスレッドを作成するようにプログラムを作成しようとしていますが、スレッド "myThreads [i] "一定の価値がある必要があります。コードは次のとおりです。
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);') –