다음을 통해 공유


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_typemove_iterator typedef 반복기 특성을 기반으로 하며 이 특성 difference_type과 교환하여 사용할 수 있습니다.

typedef typename iterator_traits<RandomIterator>::difference_type difference_type;

설명

이 형식은 반복기 특성 typename iterator_traits<RandomIterator>::pointer의 동의어입니다.

move_iterator::iterator_category

이 형식 iterator_categorymove_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_iteratorvalue_type&&에 따른 typedef이며, value_type&&과 바꿔서 사용할 수 있습니다.

typedef value_type&& reference;

설명

이 형식은 rvalue 참조인 value_type&&과 동일한 의미입니다.

move_iterator::value_type

이 형식 value_typemove_iterator typedef 반복기 특성을 기반으로 하며 이 특성 value_type과 교환하여 사용할 수 있습니다.

typedef typename iterator_traits<RandomIterator>::value_type   value_type;

설명

이 형식은 반복기 특성 typename iterator_traits<RandomIterator>::value_type의 동의어입니다.

참고 항목

<iterator>
Lvalue 및 Rvalue
이동 생성자 및 이동 할당 연산자(C++)
C++ 표준 라이브러리 참조