Gördüğünüz gibi, birkaç iş parçacığı oluşturmak istiyorum.Şimdi iş parçacığı sayısı konsoldan aldığım komut satırı bağımsız değişkenine bağlıdır, temel olarak oluşturulacak iş parçacıklarının olmaması gerekir dinamik ancak C++ 11'deki iş parçacığı nesnesinin nesnesini oluşturmak, bir const boyutu verilmesini gerektirir ve bu, bir değişken kullanılmadan başlatıldığında yalnızca "num_threads" kabul edildiği için benim sorunumun oluştuğu yerdir (i., e bir literal kullanarak.
gibi: durumunda static const int num_threads=10;
Ama: static const int num_threads=stoi(argv[1]);
iş parçacığı dinamik boyutu koymak nasıl
int main(int argc, char *argv[])
{
if(argc!=2)
{
cout << "\n Invalid arguments \n";
return 0;
}
static const int num_threads = 10;// stoi(argv[1]);//
thread t[num_threads];
//Launch a group of threads
for (int i = 0; i < num_threads; ++i)
{
t[i] = std::thread(call_from_main_to_connect_info_disconnect, i);
}
std::cout << "Launched from the main\n";
//Join the threads with the main thread
for (int i = 0; i < num_threads; ++i)
{
t[i].join();
}
getchar();
return err;
}
Herhangi önerileri komut satırından girişi yoluyla dinamik iş parçacığı hiçbir olması amacıyla?
kullanın dinamik dizide Eğer c yeniden beri "dinamik dendiğinde, veya ++ std :: vector' – DimChtz
C' kullanmak ++ dizisi "şimdi düşünmelisiniz [' std :: vector'] (http://en.cppreference.com/w/cpp/container/vector). –