std::reverse_iterator<Iter>:: operator++,+,+=,--,-,-=
From cppreference.net
<
cpp
|
iterator
|
reverse iterator
|
reverse_iterator
&
operator
++
(
)
;
|
(1) | (constexpr since C++17) |
|
reverse_iterator
&
operator
--
(
)
;
|
(2) | (constexpr since C++17) |
|
reverse_iterator operator
++
(
int
)
;
|
(3) | (constexpr since C++17) |
|
reverse_iterator operator
--
(
int
)
;
|
(4) | (constexpr since C++17) |
|
reverse_iterator operator
+
(
difference_type n
)
const
;
|
(5) | (constexpr since C++17) |
|
reverse_iterator operator
-
(
difference_type n
)
const
;
|
(6) | (constexpr since C++17) |
|
reverse_iterator
&
operator
+
=
(
difference_type n
)
;
|
(7) | (constexpr since C++17) |
|
reverse_iterator
&
operator
-
=
(
difference_type n
)
;
|
(8) | (constexpr since C++17) |
기본 반복자를 역방향으로 증가시키거나 감소시킵니다.
| 오버로드 | 동등한 표현 |
|---|---|
| (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 // 다음 구문들은 기본 반복자가 임의 접근 반복자를 모델링하지 않기 때문에 컴파일 오류를 발생시킵니다: // *(rl + 3) = 13; // rl += 3; // rl -= 3; }
출력:
3 4 1 1 4 7 8
참고 항목
|
반복자를 전진시킵니다
(function template) |
|
|
두 반복자 어댑터 간의 거리를 계산합니다
(function template) |