std::reverse_iterator<Iter>::operator++,+,+=,--,-,-=

来自cppreference.com
 
 
迭代器库
迭代器概念
迭代器原语
算法概念与工具
间接可调用概念
常用算法要求
(C++20)
(C++20)
(C++20)
工具
(C++20)
迭代器适配器
范围访问
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
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)<<' ';// 3std::cout<<*(--rv)<<' ';// 4std::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:3std::cout<<*(--rl)<<'\n';// OK:4// 以下语句会产生编译错误,因为底层迭代器未实现随机访问迭代器:// *(rl + 3) = 13;// rl += 3;// rl -= 3;}

输出:

3 4 1 1 4 7 8

[编辑]参阅

令迭代器前进
(函数模板)[编辑]
计算两个迭代器适配器间的距离
(函数模板)[编辑]
close