reverse_iterator 類別
此樣板類別是迭代器配接器,描述行為類似隨機存取或雙向迭代器,只不過是反向方向的反向迭代器物件。 它啟用範圍的向後周遊。
template <class RandomIterator>
class reverse_iterator
參數
- RandomIterator
類型,表示要調整為反向操作的迭代器。
備註
現有的標準範本庫容器也會定義 reverse_iterator 和 const_reverse_iterator 類型,並且具有可傳回反向迭代器的成員函式 rbegin 和 rend。 這些迭代器有覆寫語意。 reverse_iterator 配接器提供插入語意補充這項功能,也可以用於資料流。
需要雙向迭代器的 reverse_iterator 不可呼叫任何成員函式 operator+=、operator+、operator-=、operator- 或 operator[],這些只能用於隨機存取迭代器。
如果迭代器的範圍是 [_First, _Last),其中左方括號表示 _First 時包含,而右括號表示包含項目直到 _Left,但不含 _Left 本身。 相同項目包含在反向序列中 [rev – _First, rev – _Left),因此,如果 _Left 是在序列中的超出結尾後一個 (one-past-the-end) 項目,則反向序列中的第一個項目 rev – _First 會指向 *(_Left – 1 )。 將所有反向迭代器與其基礎迭代器關聯的識別為:
&*(reverse_iterator ( i ) ) == &*( i – 1 ).
實際上,這表示在反向序列中 reverse_iterator 會參考迭代器在原始序列中所參考項目之外 (右側) 一個位置的項目。 因此,如果迭代器定址序列 (2, 4, 6, 8) 中的項目 6,則 reverse_iterator 會定址反向序列 (8, 6, 4, 2) 中的項目 4。
建構函式
從基底迭代器建構預設的 reverse_iterator 或 reverse_iterator。 |
Typedef
類型,提供兩個參考同一容器內項目的 reverse_iterator 之間的差異。 |
|
類型,提供 reverse_iterator 的基礎迭代器。 |
|
類型,提供指向 reverse_iterator 定址的項目之指標。 |
|
類型,提供指向 reverse_iterator 定址的項目之參考。 |
成員函式
從其 reverse_iterator 復原基礎迭代器。 |
運算子
傳回 reverse_iterator 定址的項目。 |
|
將位移新增至迭代器,並傳回新的 reverse_iterator,定址在新的位移位置中插入的項目。 |
|
遞增 reverse_iterator 至下一個項目。 |
|
加入 reverse_iterator 的指定位移。 |
|
從 reverse_iterator 減去位移並傳回 reverse_iterator,定址在位移位置上的項目。 |
|
遞減 reverse_iterator 至上一個項目。 |
|
從 reverse_iterator 減去指定位移。 |
|
傳回由 reverse_iterator 定址的項目之指標。 |
|
以指定的位置數目,從 reverse_iterator 定址的項目傳回項目位移的參考。 |
需求
標頭:<iterator>
命名空間: std