std::reverse_iterator<Iter>::operator++,+,+=,--,-,-=
來自 cppreference.com
reverse_iterator& operator++(); |
(1) | (自 C++17 起為 constexpr) |
reverse_iterator& operator--(); |
(2) | (自 C++17 起為 constexpr) |
reverse_iterator operator++( int ); |
(3) | (自 C++17 起為 constexpr) |
reverse_iterator operator--( int ); |
(4) | (自 C++17 起為 constexpr) |
reverse_iterator operator+( difference_type n ) const; |
(5) | (自 C++17 起為 constexpr) |
reverse_iterator operator-( difference_type n ) const; |
(6) | (自 C++17 起為 constexpr) |
reverse_iterator& operator+=( difference_type n ); |
(7) | (自 C++17 起為 constexpr) |
reverse_iterator& operator-=( difference_type n ); |
(8) | (自 C++17 起為 constexpr) |
反向遞增或遞減底層迭代器。
過載 | 等價於 |
---|---|
(1) | --current ; return *this;
|
(2) | ++current ; return *this;
|
(3) | reverse_iterator tmp = *this; --current ; return tmp;
|
(4) | reverse_iterator tmp = *this; ++current ; return tmp;
|
(5) | return reverse_iterator(current - n);
|
(6) | return reverse_iterator(current + n);
|
(7) | current -= n; return *this;
|
(8) | current += n; return *this;
|
目錄 |
[編輯] 引數
n | - | 相對於當前位置的偏移量 |
[編輯] 返回值
如上所述。
[編輯] 示例
執行此程式碼
#include <iostream> #include <iterator> #include <list> #include <vector> int main() { std::vector v{0, 1, 2, 3, 4}; auto rv = std::reverse_iterator{v.rbegin()}; std::cout << *(++rv) << ' '; // 3 std::cout << *(--rv) << ' '; // 4 std::cout << *(rv + 3) << ' '; // 1 rv += 3; std::cout << rv[0] << ' '; // 1 rv -= 3; std::cout << rv[0] << '\n'; // 4 std::list l{5, 6, 7, 8}; auto rl = std::reverse_iterator{l.rbegin()}; std::cout << *(++rl) << ' '; // OK: 3 std::cout << *(--rl) << '\n'; // OK: 4 // The following statements raise compilation error because the // underlying iterator does not model the random access iterator: // *(rl + 3) = 13; // rl += 3; // rl -= 3; }
輸出
3 4 1 1 4 7 8
[編輯] 參閱
前進迭代器 (函式模板) | |
計算兩個迭代器介面卡之間的距離 (函式模板) |