簡體   English   中英

std :: vector的迭代器的分類

[英]Classification of std::vector's iterators

在對cppreference的std::vector的描述中( http://en.cppreference.com/w/cpp/container/vector/begin ),我錯過了迭代器的分類(根據http://www.cplusplus。 com / reference / iterator / ),由begin()函數返回end()對於end()返回的迭代器也是如此)。

cppreference是否不必聲明begin()返回哪個迭代器類別,以便用戶知道迭代器的功能? 目前,對我而言,尚不清楚std::vector的迭代器提供哪些功能。

std::vectorcppreference頁面上,您將找到:

Member types
============

  ...

iterator    RandomAccessIterator

在“ 成員類型 ”部分下,查看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的所有要求。

從這里http://en.cppreference.com/w/cpp/container/vector您可以看到向量的迭代器為RandomAccessIterator概念建模: http : //en.cppreference.com/w/cpp/concept/RandomAccessIterator

std::vector::begin()返回std::vector::iterator (或const_iterator

std::begin(x)返回x.begin()的結果

因此std :: begin(std :: vector <...>)將返回一個隨機訪問迭代器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM