【发布时间】:2019-07-20 04:05:06
【问题描述】:
我需要从 concurrent_unordered_map 中删除值为 true 的所有项目
auto dataMap = new concurrency::concurrent_unordered_map<std::string, bool>();
(*dataMap)["1"] = false;
(*dataMap)["2"] = true;
(*dataMap)["3"] = false;
(*dataMap)["4"] = true;
(*dataMap)["5"] = false;
(*dataMap)["6"] = true;
我进行了长时间的搜索以了解如何正确执行此操作,但是我没有找到解决方案……我的最后一次尝试:
auto itr = dataMap->begin();
while (itr != dataMap->end())
{
auto data = (*itr);
if (data.second == true)
{
dataMap->unsafe_erase(data.first);
}
++itr;
}
那么,如何正确移除这些物品?
编辑:
我正在使用 VC++ 2019
【问题讨论】:
标签: c++ concurrency