move_iterator 클래스
클래스 템플릿 move_iterator는 반복기에 대한 래퍼입니다. move_iterator는 저장된 반복기의 역참조 연산자를 rvalue 참조로 전환하여 복사본을 이동으로 전환하는 것을 제외하고, 래핑(저장)하는 반복기와 동일한 동작을 제공합니다. rvalue에 대한 자세한 내용은 Rvalue 참조 선언자: &&를 참조하십시오.
template<class Iterator>
class move_iterator {
public:
typedef Iterator iterator_type;
typedef typename
iterator_traits<Iterator>::iterator_category
iterator_category;
typedef typename iterator_traits<Iterator>::value_type
value_type;
typedef typename iterator_traits<Iterator>::difference_type
difference_type;
typedef Iterator
pointer;
typedef value_type&&
reference;
move_iterator();
explicit move_iterator (Iterator right);
template<class Type>
move_iterator (const move_iterator<Type>& right);
template <class Type>
move_iterator& operator=(const move_iterator<Type>& right);
iterator_type base () const;
reference operator* () const;
pointer operator-> () const;
move_iterator& operator++ ();
move_iterator operator++ (int);
move_iterator& operator-- ();
move_iterator operator-- (int);
move_iterator& operator+= (difference_type off);
move_iterator operator+ (difference_type off) const;
move_iterator& operator-= (difference_type off);
move_iterator operator- (difference_type off) const;
reference operator[] (difference_type off) const;
};
설명
템플릿 클래스는 역참조된 경우를 제외하고 반복기와 유사하게 동작합니다. 멤버 함수 base()로 액세스하는 임의 액세스 반복기 Iterator를 저장합니다. move_iterator에 대한 모든 작업은 operator* 결과가 value_type&&으로 묵시적으로 캐스팅되어 rvalue 참조를 만드는 것을 제외하고, 저장된 반복기에서 직접 수행됩니다.
move_iterator는 래핑된 반복기에서 정의하지 않은 작업을 수행할 수 있습니다. 이러한 작업을 사용하지 마십시오.
생성자
move_iterator 형식의 개체에 대한 생성자. |
형식 정의
템플릿 매개 변수 RandomIterator의 동의어. |
|
동일한 이름의 긴 typename 식에 대한 동의어. iterator_category는 반복기의 일반 기능을 식별합니다. |
|
동일한 이름의 긴 typename 식에 대한 동의어. value_type은 반복기 요소의 형식에 대해 설명합니다. |
|
동일한 이름의 긴 typename 식에 대한 동의어. difference_type은 요소 간 차이 값을 표시하는 데 필요합니다. |
|
템플릿 매개 변수 RandomIterator에 대한 동의어. |
|
rvalue 참조 value_type&&에 대한 동의어. |
멤버 함수
멤버 함수는 이 move_iterator에서 래핑한 저장된 반복기를 반환합니다. |
연산자
(reference)*base().를 반환합니다. |
|
저장된 반복기를 증가시킵니다. 정확한 동작은 사전 증가인지 또는 사후 증가인지에 따라 다릅니다. |
|
저장된 반복기를 감소시킵니다. 정확한 동작은 사전 감소인지 또는 사후 감소인지에 따라 다릅니다. |
|
&**this를 반환합니다. |
|
현재 위치에서 오른쪽 값을 차감하여 move_iterator(*this) -= 를 반환합니다. |
|
(reference)*(*this + off)를 반환합니다. 현재 기준에서 해당 위치의 값을 얻기 위한 오프셋을 지정할 수 있습니다. |
|
move_iterator(*this) += 값을 반환합니다. 기준에 오프셋을 추가하여 해당 위치의 값을 얻을 수 있습니다. |
|
저장된 반복기에 오른쪽 값을 더하고 *this를 반환합니다. |
|
저장된 반복기에서 오른쪽 값을 빼고 *this를 반환합니다. |
요구 사항
헤더: <iterator>
네임스페이스: std