标签: c++ c++11 stl
我有一个std::map<int, int>和一个std::list<std::map<int, int>::const_iterator>。
std::map<int, int>
std::list<std::map<int, int>::const_iterator>
我可以使用STL算法按顺序用list中的所有迭代器填充map吗? 如果可能的话,我不想使用显式循环。
list
map
答案 0 :(得分:7)
STL中的算法使用值而不是迭代器调用仿函数。 如果您痴迷于避免显式循环,那么您可能会尝试将iota与迭代器一起用作值:
iota
list.resize(map.size()); std::iota( std::begin(list), std::end(list), std::begin(map) );
Demo