std :: vector的迭代器的分类

时间:2016-12-05 13:25:02

标签: c++ vector iterator

在关于cppreference(http://en.cppreference.com/w/cpp/container/vector/begin)的std::vector的描述中,我错过了begin()函数返回的迭代器的分类(根据http://www.cplusplus.com/reference/iterator/)(这同样适用于end())返回的迭代器。

cppreference不必说明begin()返回哪个迭代器类别,以便用户知道迭代器的功能吗? 目前,对我来说,仍然不清楚std::vector的迭代器提供了哪些功能。

2 个答案:

答案 0 :(得分:2)

查看Member types部分std::vector下的主要说明:

iterator               RandomAccessIterator
const_iterator         Constant random access iterator
reverse_iterator       std::reverse_iterator<iterator>
const_reverse_iterator std::reverse_iterator<const_iterator>

std::vector使用RandomAccessIterator

  

RandomAccessIterator是可以移动到的BidirectionalIterator   指向恒定时间内的任何元素。指向元素的指针   数组满足RandomAccessIterator的所有要求   ...

答案 1 :(得分:2)

从这里http://en.cppreference.com/w/cpp/container/vector你可以看到向量的迭代器为$usGroups = $_POST['usergroups']; $usgr = implode(",",$usGroups); 概念建模:http://en.cppreference.com/w/cpp/concept/RandomAccessIterator

RandomAccessIterator会返回std::vector::begin()(或std::vector::iterator

const_iterator会返回std::begin(x)

的结果

因此std :: begin(std :: vector&lt; ...&gt;)将返回一个随机访问迭代器。