我的意思是,我们知道 std::map
的元素是根据键来排序的。假设键是整数。如果我使用 for
从 std::map::begin()
迭代到 std::map::end()
,标准是否保证我将随后通过带键的元素进行迭代,并按升序排序?
例如:
std::map<int, int> map_;
map_[1] = 2;
map_[2] = 3;
map_[3] = 4;
for( std::map<int, int>::iterator iter = map_.begin();
iter != map_.end();
++iter )
{
std::cout << iter->second;
}
是保证打印 234
还是定义实现?
现实生活中的原因: 我有一个 std::map
与 int
键。在非常罕见的情况下,我希望使用键迭代所有大于具体 int
值的元素。是的,听起来 std::vector
会是更好的选择,但请注意我的“非常罕见的情况”。
编辑 : 我知道,std::map
的元素已经排序了。.没有必要指出它(对于这里的大多数答案)。我甚至把它写在了我的问题里。
当我在一个容器中进行迭代时,我问的是迭代器和顺序。谢谢@Kerrek SB 的回答。