c++ - 用来自另一个容器的迭代器填充一个容器

标签 c++ c++11 stl

我有一个 std::map<int, int>和一个 std::list<std::map<int, int>::const_iterator> .

我可以使用 STL 算法来填充 list 吗?来自 map 的所有迭代器为了?
如果可能,我不想使用显式循环。

最佳答案

STL 中的算法使用值而不是迭代器调用仿函数。 如果您着迷于避免显式循环,那么您可以尝试使用 iota以迭代器作为值:

list.resize(map.size());
std::iota( std::begin(list), std::end(list), std::begin(map) );

Demo .

关于c++ - 用来自另一个容器的迭代器填充一个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26701607/

相关文章:

c++ - Xcode:如何在 i7 上为旧版 Intel 处理器(i5、Core 2 Duo)构建

c++ - 为什么我在 C++ 代码中收到此错误

c++ - 在 C++ 中计算有序集的并集

c++ - HBITMP 的 WIndows 函数 DestroyObject 不能很好地工作(内存泄漏)

c++ - `std::enable_if` 是函数指针——怎么样?

c++ - 使用迭代器删除元素,不知道 vector

c++ - 如果没有找到 map 元素会返回什么?

c++ - 通过引用抛出异常对象好不好

c++ - 对象构造/前向函数声明歧义

c++ - 使用 vector 数组在 C++ 中创建扫雷