std::reverse_iterator 연산자
std::reverse_iterator 연산자 (operator== 등)
두 std::reverse_iterator를 비교하는 연산자들이에요. 기본 반복자에 대한 비교를 위임해요. C++11부터 있어요(C++17부터 constexpr).
출처: cppreference
본문
<iterator> 헤더에 정의돼 있어요.
// (1) C++11 (C++17부터 constexpr)
template< class Iter1, class Iter2 >
bool operator==( const std::reverse_iterator<Iter1>& lhs,
const std::reverse_iterator<Iter2>& rhs );
// (2) C++11부터 operator!= ... 이하 operator<, <=, >, >=
두 std::reverse_iterator를 비교해요. 기본 반복자를 비교한 결과를 돌려줘요. operator!=, operator>, operator>=는 operator==와 operator<로부터 유도돼요. C++20부터는 operator<=>가 도입돼 <, <=, >, >=, !=가 operator<=>와 operator==로부터 합성돼요.
주의: operator<는 기본 반복자를 비교하는데, 역방향 반복자에서는 순서가 반대라 lhs.base() < rhs.base()의 결과를 그대로 쓰면 직관과 반대가 될 수 있어요. 실제로는 lhs.base() > rhs.base()로 정의되는 등 순서가 뒤집혀요.
반환값
lhs.base() == rhs.base()등 기본 반복자에 대한 비교 결과(역방향에 맞게 조정).