Помогите. Хотел написать програмульку для нахождение слова в массиве. Ничего не вышло
Вообщем вылазит какие то две ошибки
1)Серьезность Код Описание Проект Файл Строка Состояние подавления Подробности
Ошибка C2938 "std::_Invoke_result_t": не удалось специализировать шаблон псевдонима ДОРАБОТКА 15.5 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\algorithm 5092
2)Серьезность Код Описание Проект Файл Строка Состояние подавления Подробности
Ошибка C2794 type: не является прямым или косвенным базовым классом для "std::_Invoke_traits_zero<void,_Urng &>"
with
[
_Urng=int
]
ДОРАБОТКА 15.5 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\type_traits 1877
#include<iostream>
#include<thread>
#include<vector>
#include<algorithm>
#include<random>
#include <mutex>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
int minv = 104;
int maxv = 111;
std::uniform_int_distribution<> distrib(minv, maxv);
std::vector<std::vector<char>> basic(1000, std::vector<char>(1000));
for (size_t i = 0; i < 1000; i++)
{
for (size_t d = 0; d < 1000; d++)
{
basic[i][d] = distrib(minv, maxv);
}
}
std::mutex mtx;
std::vector<std::thread> threads;
std::vector<char> hello = { 'h','e','l','l','o' };
for (const auto& dadli : basic)
{
threads.push_back(std::thread([&dadli, &hello, &mtx]() {
auto rows = dadli; // Копируем строку для каждого потока
auto HELLO = search(rows.begin(), rows.end(), hello.begin(), hello.end());
if (HELLO != rows.end())
{
std::lock_guard<std::mutex> lock(mtx);
for (size_t i = 0; i < 5 && HELLO != rows.end(); i++)
{
std::cout << *HELLO++ << std::endl;
}
}
else
{
std::lock_guard<std::mutex> lock(mtx);
std::cout << "Такого элемента нет" << std::endl;
}
}));
}
for (auto& thr : threads)
{
thr.join();
}
return 0;
}