программа запускает 2 потока
1 поток должен найти в заданном массиве количество парных и количество нечетных чисел.
2 поток должен посчитать количество чисел которые делятся нацело на 5 или 7
один из этих потоков в начале программы должен заполнить массив числами от 1 до 1000, это должен сделать один из трех потоков, то кто первым сможет захватить ресурс - массив(используя std::once_flag, std::call_once)
Функции я написала. Но я не знаю как сделать чтобы один поток заполнил рандомно. Нужна ваша помощь.
void evenOROdd(int* array)
{
int evenCount = 0;
int oddCount = 0;
size_t arraySize = sizeof(array) / sizeof(int);
for (int index = 0; index < arraySize; ++index)
{
if ((array[index] % 2) != 0)
++evenCount;
else if ((array[index] % 2) == 0)
++oddCount;
}
std::cout << "Even- " << evenCount << "\n";
std::cout << "Odd- " << oddCount << "\n";
}
void entireFiveOrSeven(int* array)
{
int count = 0;
size_t arraySize = sizeof(array) / sizeof(int);
for (int index = 0; index < arraySize; ++index)
{
if ((((array[index] % 5) == 0)) || ((array[index] % 7) == 0))
++count;
}
std::cout << "EntireFiveOrSeven- " << count << "\n";
}
void randomValues()
{
std::srand(time(0));
size_t array_size = 1000;
int* array = new int[array_size];
for (int index = 0; index < array_size; ++index)
array[index] = (rand() % 999 + 1);
}
int main()
{
static int randomValues = randomValues();
std::thread t1(evenOROdd);
std::thread t2(entireFiveOrSeven);
t1.join();
t2.join();
return 0;
}
UPD:Переделала как в примере. Но Я так и не пойму как можно как я делать в меине делать.
std::once_flag flag;
void randomValues()
{
std::srand(time(0));
size_t array_size = 1000;
int* array = new int[array_size];
std::call_once(flag, array);
for (int index = 0; index < array_size; ++index)
array[index] = (rand() % 999 + 1);
}
int main()
{
std::thread t1(randomValues);
std::thread t2(randomValues);
std::thread t1(evenOROdd);
std::thread t2(entireFiveOrSeven);
t1.join();
t2.join();
return 0;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть некий класс, который является оберткой над массивомЭтот класс называется хранилищем моих элементов
Есть программа, большую часть своей жизни она сидит в трее и должна иногда мигать иконкой, при двойном клике открывать вебкитМигает она или...