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

Access elements of a list inside an unordered map in C++

本文关键字:列表元素 映射 访问 c++ 无序      更新时间:2023-10-16

我的疑问很简单:假设我有一个这样的地图

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

现在我想把map中列表的每个int型复制到int型集合中。这是我正在做的解决方案的杰作,它只错过了这一部分…我只是想知道如何使这个过程中的列表内映射到一个集合。

首先,你似乎在复制…代替循环插入,尝试使用:

void insert (InputIterator first, InputIterator last);

所以对你来说这变成了(不需要for循环):

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

我想你只是在问你如何从新地图中获得数据?在unordered_map中,您的语法是正确的,您可以使用[]操作符,但除非您需要提高性能,否则您应该坚持使用std::map。特别是考虑到到目前为止你在STL上遇到的困难。

此外,我想强调使用sort(在常规映射上)、find和迭代器等函数,以使事情更安全、更容易。