有没有办法从 std::unordered_map 中获取所有值?

Is there a way to get all values out of an std::unordered_map?

我有一个 unordered_map,里面有一些数据,我希望能够将内容保存到一个文件中,并在以后检索数据。我对关键数据不感兴趣,只对地图值感兴趣。

如果我可以获取存储在地图中的值数组,则可以轻松将其写入磁盘,但我不确定获取该数据的最佳方式是什么。

我考虑过使用 .begin() 获取指向开头的迭代器并遍历所有存储桶,直到找到所有值。当然有更好的方法。

如果可能的话我真的不想使用boost之类的。

您可以使用基于范围的 for 循环来获取每个 pairsecond,然后将其写入文件。

for (auto const& element : your_map)
{
    std::cout << element.second;  // Write to file or whatever you want to do
}

你可以枚举一个std::unordered_map。 key/value 对在枚举期间出现的顺序无法预测。但是,你保证通过所有的对。