В этом случае безопасна ли поток std :: unoromeded_map?C++

Программы на C++. Форум разработчиков
Anonymous
В этом случае безопасна ли поток std :: unoromeded_map?

Сообщение Anonymous »

Предположим, что один поток непрерывно вызывает только следующие функции.

здесь, insert_data проверьте, существует ли клавиша в std :: unomordered_map , и если он не существует, insert_data вызовите функцию, которая добавляет новую клавишу и изменяет его значения. < /p>

Код: Выделить всё

void insert_data(int key, int value, std::unordered_map& my_map)
{
if (my_map.find(key) == my_map.end())
{
my_map[key] = std::vector();
}

my_map[key].push_back(value);
}
< /code>
В другом потоке он вытекает на std :: unoromeded_map снова и снова.void iteration(std::unordered_map& my_map)
{
for (auto& [key, value] : my_map)
{
std::cout

Подробнее здесь: [url]https://stackoverflow.com/questions/75029042/is-stdunordered-map-thread-safe-in-this-case[/url]

Вернуться в «C++»