operator- (std::counted_iterator)
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(C++20)
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
operator-
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Helper classes | ||||
|
template
<
std::
common_with
<
I
>
I2
>
friend
constexpr
std::
iter_difference_t
<
I2
>
operator
-
(
|
(C++20 이후) | |
두 반복자 어댑터 간의 거리를 계산합니다.
x 와 y 가 동일한 시퀀스의 요소를 가리키지 않을 경우 동작은 정의되지 않습니다. 즉, 어떤 n 이 존재하여 std:: next ( x. base ( ) , x. count ( ) + n ) 와 std:: next ( y. base ( ) , y. count ( ) + n ) 가 동일한 요소를 참조해야 합니다.
이 함수 템플릿은 일반적인 unqualified 또는 qualified lookup 으로는 보이지 않으며, std::counted_iterator<I>가 인자들의 연관 클래스일 때에만 argument-dependent lookup 을 통해서만 찾을 수 있습니다.
목차 |
매개변수
| x, y | - | 차이를 계산하기 위한 iterator adaptors |
반환값
y. count ( ) - x. count ( )
참고 사항
length 가 증가하지 않고 감소하기 때문에, operator - 의 인자 순서가 기본 표현식에서 반대로 되어 있습니다. 즉, y 가 lhs 이고 x 가 rhs 입니다.
예제
#include <initializer_list> #include <iterator> int main() { static constexpr auto v = {1, 2, 3, 4, 5, 6}; constexpr std::counted_iterator<std::initializer_list<int>::iterator> it1{v.begin(), 5}, it2{it1 + 3}, it3{v.begin(), 2}; static_assert(it1 - it2 == -3); static_assert(it2 - it1 == +3); // static_assert(it1 - it3 == -3); // UB: operator-의 피연산자가 동일한 시퀀스의 // 요소를 참조하지 않음 }
참고 항목
counted_iterator
를 전진 또는 후진시킵니다
(public member function) |
|
|
(C++20)
|
반복자를 전진시킵니다
(function template) |
|
끝까지의 부호 있는 거리를 계산합니다
(function template) |