move_iterator 클래스
클래스 템플릿 move_iterator
는 반복기에 대한 래퍼입니다. 이 move_iterator 저장된 반복기의 역참조 연산자를 rvalue 참조로 변환하여 복사본을 이동으로 전환하는 것을 제외하고 래핑(store)하는 반복기와 동일한 동작을 제공합니다. rvalue에 대한 자세한 내용은 Rvalue 참조 선언자: &&를 참조하세요.
구문
class move_iterator;
설명
클래스 템플릿은 역참조되는 경우를 제외하고 반복기처럼 동작하는 개체를 설명합니다. 이 클래스는 구성원 함수 base()
로 액세스하는 Iterator
형식의 임의 액세스 반복기를 저장합니다. move_iterator
에 대한 모든 작업은 operator*
결과가 value_type&&
으로 묵시적으로 캐스팅되어 rvalue 참조를 만드는 것을 제외하고, 저장된 반복기에서 직접 수행됩니다.
A는 move_iterator
래핑된 반복기로 정의되지 않은 작업을 수행할 수 있습니다. 이러한 작업을 사용하면 안 됩니다.
생성자
생성자 | Description |
---|---|
move_iterator | move_iterator 형식의 개체에 대한 생성자입니다. |
Typedef
형식 이름 | 설명 |
---|---|
iterator_type | 템플릿 매개 변수 RandomIterator 의 동의어. |
iterator_category | 동일한 이름의 긴 typename 식에 대한 동의어. iterator_category 는 반복기의 일반 기능을 식별합니다. |
value_type | 동일한 이름의 긴 typename 식에 대한 동의어. value_type 은 반복기 요소의 형식에 대해 설명합니다. |
difference_type | 동일한 이름의 긴 typename 식에 대한 동의어. difference_type 은 요소 간 차이 값을 표시하는 데 필요합니다. |
pointer | 템플릿 매개 변수 RandomIterator 에 대한 동의어. |
reference | rvalue 참조 value_type&& 에 대한 동의어. |
멤버 함수
멤버 함수 | 설명 |
---|---|
base | 멤버 함수는 이 move_iterator 에서 래핑한 저장된 반복기를 반환합니다. |
연산자
연산자 | 설명 |
---|---|
move_iterator::operator* | (reference)*base() 을(를) 반환합니다. |
move_iterator::operator++ | 저장된 반복기를 증가시킵니다. 정확한 동작은 사전 증가 또는 사후 증가 작업인지에 따라 달라집니다. |
move_iterator::operator-- | 저장된 반복기를 감소시킵니다. 정확한 동작은 사전 증가 또는 사후 증분 작업인지에 따라 달라집니다. |
move_iterator::operator-> |
&**this 을(를) 반환합니다. |
move_iterator::operator- | 현재 위치에서 오른쪽 값을 차감하여 move_iterator(*this) -= 를 반환합니다. |
move_iterator::operator[] | (reference)*(*this + off) 을(를) 반환합니다. 현재 기준에서 해당 위치의 값을 얻기 위한 오프셋을 지정할 수 있습니다. |
move_iterator::operator+ | move_iterator(*this) += 값을 반환합니다. 기준에 오프셋을 추가하여 해당 위치의 값을 얻을 수 있습니다. |
move_iterator::operator+= | 저장된 반복기에 오른쪽 값을 더하고 *this 를 반환합니다. |
move_iterator::operator-= | 저장된 반복기에서 오른쪽 값을 빼고 *this 를 반환합니다. |
요구 사항
헤더:<반복기>
네임스페이스: std
move_iterator::base
이 move_iterator
에 대한 저장된 반복기를 반환합니다.
RandomIterator base() const;
설명
이 멤버 함수는 저장된 반복기를 반환합니다.
move_iterator::difference_type
이 형식 difference_type
은 move_iterator
typedef
반복기 특성을 기반으로 하며 이 특성 difference_type
과 교환하여 사용할 수 있습니다.
typedef typename iterator_traits<RandomIterator>::difference_type difference_type;
설명
이 형식은 반복기 특성 typename iterator_traits<RandomIterator>::pointer
의 동의어입니다.
move_iterator::iterator_category
이 형식 iterator_category
은 move_iterator
typedef
반복기 특성을 기반으로 하며 이 특성 iterator_category
과 교환하여 사용할 수 있습니다.
typedef typename iterator_traits<RandomIterator>::iterator_category iterator_category;
설명
이 형식은 반복기 특성 typename iterator_traits<RandomIterator>::iterator_category
의 동의어입니다.
move_iterator::iterator_type
iterator_type
형식은 클래스 템플릿 move_iterator
에 대한 템플릿 매개 변수 RandomIterator
를 기반으로 하며 해당 위치에 같은 의미로 사용될 수 있습니다.
typedef RandomIterator iterator_type;
설명
이 형식은 템플릿 매개 변수 RandomIterator
의 동의어입니다.
move_iterator::move_iterator
이동 반복기를 생성합니다. 매개 변수를 저장된 반복기로 사용합니다.
move_iterator();
explicit move_iterator(RandomIterator right);
template <class Type>
move_iterator(const move_iterator<Type>& right);
매개 변수
right
저장된 반복기로 사용할 반복기입니다.
설명
첫 번째 생성자는 기본 생성자를 사용하여 저장된 반복기를 초기화합니다. 나머지 생성자는 base.base()
를 사용하여 저장된 반복기를 초기화합니다.
move_iterator::operator+=
저장된 반복기가 새 현재 위치에서 요소를 가리키도록 저장된 반복기에 오프셋을 추가합니다. 그러면 연산자가 새 현재 요소를 이동시킵니다.
move_iterator& operator+=(difference_type _Off);
매개 변수
_Off
새 현재 위치를 알기 위해 현재 위치에 추가하는 오프셋입니다.
Return Value
새 현재 요소를 반환합니다.
설명
연산자는 저장된 반복기에 _Off 추가합니다. 그런 다음 *this
를 반환합니다.
move_iterator::operator-=
지정된 수의 이전 요소를 이동합니다. 이 연산자는 저장된 반복기에서 오프셋을 뺍니다.
move_iterator& operator-=(difference_type _Off);
매개 변수
설명
연산자가 *this += -_Off
를 평가합니다. 그런 다음 *this
를 반환합니다.
move_iterator::operator++
이 move_iterator
값에 속하는 저장된 반복기를 증분합니다. 현재 요소는 사후 증가 연산자에 의해 액세스됩니다. 다음 요소는 사전 증가 연산자로 액세스합니다.
move_iterator& operator++();
move_iterator operator++(int);
매개 변수
설명
첫 번째(사전 증가) 연산자는 저장된 반복기를 단계적으로 증가시킵니다. 그런 다음 *this
를 반환합니다.
두 번째(사후 증가) 연산자는 *this
의 복사본을 만들고 ++*this
를 평가합니다. 그런 다음 복사본을 반환합니다.
move_iterator::operator+
임의 요소 수만큼 앞으로 이동한 반복기 위치를 반환합니다.
move_iterator operator+(difference_type _Off) const;
매개 변수
설명
연산자는 .를 반환합니다 move_iterator(*this) +=
_Off
.
move_iterator::operator[]
배열 인덱스에 move iterator
범위의 요소에 대한 액세스를 허용합니다.
reference operator[](difference_type _Off) const;
매개 변수
설명
연산자가 (reference)*(*this + _Off)
를 반환합니다.
move_iterator::operator--
사전 및 사후 감소 멤버 연산자는 저장된 반복기에서 감소를 수행합니다.
move_iterator& operator--();
move_iterator operator--();
매개 변수
설명
첫 번째 멤버 연산자(사전 감소)가 저장된 반복기를 감소시킵니다. 그런 다음 *this
를 반환합니다.
두 번째(사후 감소) 연산자가 *this
의 복사본을 만들고 --*this
를 계산합니다. 그런 다음 복사본을 반환합니다.
move_iterator::operator-
저장된 반복기를 단계적으로 감소시키고 표시된 값을 반환합니다.
move_iterator operator-(difference_type _Off) const;
매개 변수
설명
연산자가 move_iterator(*this) -= _Off
를 반환합니다.
move_iterator::operator*
저장된 반복기를 역참조하고 값을 반환합니다. rvalue reference
처럼 동작하며 이동 할당을 수행합니다. 연산자는 기본 반복기에서 현재 요소를 전송합니다. 뒤에 오는 요소는 새 현재 요소가 됩니다.
reference operator*() const;
설명
연산자가 (reference)*base()
를 반환합니다.
move_iterator::operator->
일반 RandomIterator
operator->
과 마찬가지로 현재 요소에 속하는 필드에 대한 액세스를 제공합니다.
pointer operator->() const;
설명
연산자가 &**this
를 반환합니다.
move_iterator::pointer
pointer
형식은 move_iterator
에 대한 임의 반복기 RandomIterator
를 기반으로 하는 typedef
이며, 같은 의미로 사용될 수 있습니다.
typedef RandomIterator pointer;
설명
이 형식은 RandomIterator
의 동의어입니다.
move_iterator::reference
reference
형식은 move_iterator
의 value_type&&
에 따른 typedef
이며, value_type&&
과 바꿔서 사용할 수 있습니다.
typedef value_type&& reference;
설명
이 형식은 rvalue 참조인 value_type&&
과 동일한 의미입니다.
move_iterator::value_type
이 형식 value_type
은 move_iterator
typedef
반복기 특성을 기반으로 하며 이 특성 value_type
과 교환하여 사용할 수 있습니다.
typedef typename iterator_traits<RandomIterator>::value_type value_type;
설명
이 형식은 반복기 특성 typename iterator_traits<RandomIterator>::value_type
의 동의어입니다.
참고 항목
<iterator>
Lvalue 및 Rvalue
이동 생성자 및 이동 할당 연산자(C++)
C++ 표준 라이브러리 참조