在C ++中访问无序映射内的列表元素

时间:2014-03-21 17:58:03

标签: c++ list set unordered-map

我的基本疑问就是这样:假设我有这样的地图

std::map<int,std::list<int>> my_map;

现在我想将地图中列表中的每个int复制到一组int中。这是我正在做的解决方案的主要部分,它只是错过了这部分......我只是想知道如何将地图中的列表进行到集合中。

1 个答案:

答案 0 :(得分:1)

首先,您似乎正在复制...而不是循环插入,请尝试使用:

void insert (InputIterator first, InputIterator last);

所以对你而言(不需要循环):

visitados.insert(graph.begin(), graph.end());

我想你只是问你如何从新地图中获取数据?在unordered_map中你有正确的语法,你可以使用[]运算符,但除非你需要挤出额外的性能,你应该坚持使用std :: map。特别是考虑到你到目前为止STL的困难。

另外,我想强调使用sort(在常规地图上),find和迭代器等函数来使事情更安全,更容易。

Read more here