map的迭代器类型是什么<t,u =“”>。begin()</t,>

时间:2013-05-27 23:46:12

标签: c++

template <class InputIterator, class Distance>
  void advance (InputIterator& it, Distance n);

    InputOutput < Forward < Bidirectional < Random Access

map<int, int> mapInts;
...

std::map<int, int>::iterator it = mapInts.begin();
std::advance (it,5);

Q&GT; map.begin返回的迭代器类型是什么? InputOut,Forward,Bidirectional?

谢谢

1 个答案:

答案 0 :(得分:4)

来自Map::begin() documentation

  

的std :: map.begin()

     

将迭代器返回到开头   返回引用地图容器中第一个元素的迭代器。

     

因为地图容器始终保持其元素的排序,所以开始指向首先遵循容器排序标准的元素。

     

如果容器为空,则不应取消引用返回的迭代器值。

     

返回值   容器中第一个元素的迭代器。

     

如果map对象是const限定的,则该函数返回一个const_iterator。否则,它返回一个迭代器。

     

成员类型iterator和const_iterator是指向元素(类型为value_type)的双向迭代器类型。   请注意,map容器中的value_type是pair的别名。

编辑:: 符合C ++标准§23.2.4/ 6

  

关联容器的迭代器是双向迭代器类别