我在C ++中有一个unordered map(umap):

unordered_map<int, bool> dTimeResetUmap;


我将其值设置为:

dTimeResetUmap[person.object_id] = true;


person.object_id可以是0, 1, 2, 3任何int数。在代码的某些点,我必须修改al中的值(基本上必须将所有值都设为false),如下所示:

int size_of_dTimeResetUmap = dTimeResetUmap.size();

for (int i = 0; i <= size_of_dTimeResetUmap; i++)
{
    dTimeResetUmap[i] = false;
}


但这似乎没有任何价值。经过长时间的代码运行后,dTimeResetUmap中的几个值仍然是true而不是false。可能是什么原因。这不是更新值的好方法。请帮助谢谢。

最佳答案

使用C ++迭代来访问地图的每个元素:

for (auto & element : dTimeResetUmap)
{
    element.second = false;
}

关于c++ - 如何在C++中修改unordered_map中的每个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58639849/

10-13 09:19