다음을 통해 공유


move_iterator Class

클래스 템플릿 move_iterator 반복기에 대 한 래퍼입니다.저장된 반복기를 나타낸 제외 (저장소)를 래핑하는 반복기의 역참조 연산자는 rvalue 참조에 복사본으로 이동 하면 move_iterator는 동일한 동작을 제공 합니다.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;
    };

설명

템플릿 클래스가 반복기를 역참조 하는 경우를 제외 하 고 처럼 동작 하는 개체를 설명 합니다.이 임의 액세스 반복기의 형식에 저장 Iterator멤버 함수를 통해 액세스, base().모든 작업에는 move_iterator 저장 된 반복기에서 직접 수행 하는 제외 하 고 결과를 operator* 에 암시적으로 캐스팅 value_type&& rvalue는 참조할 수.

A move_iterator 래핑된 반복기가 정의 되지 않은 작업을 수행할 수 있습니다.이러한 작업을 사용 해야 합니다.

Ee428021.collapse_all(ko-kr,VS.110).gif생성자

move_iterator

생성자 형식의 개체에 대 한 move_iterator.

Ee428021.collapse_all(ko-kr,VS.110).gif형식 정의

move_iterator::iterator_type

템플릿 매개 변수에 대 한 동의어 RandomIterator.

move_iterator::iterator_category

동의어는 더 typename 식의 이름은 iterator_category 반복기의 일반 기능을 식별 합니다.

move_iterator::value_type

동의어는 더 typename 식에 이름이 같은 value_type 요소는 반복기 종류에 대해 설명 합니다.

move_iterator::difference_type

동의어는 더 typename 식에 이름이 같은 difference_type 익스프레스 차이 값 요소 사이 필요한 정수 계열 형식에 설명 합니다.

move_iterator::pointer

템플릿 매개 변수에 대 한 동의어 RandomIterator.

move_iterator::reference

에 대 한 동의어는 rvalue 참조 value_type&&.

Ee428021.collapse_all(ko-kr,VS.110).gif멤버 함수

move_iterator::base

이것으로 래핑된 저장된 반복기 멤버 함수 반환 move_iterator.

Ee428021.collapse_all(ko-kr,VS.110).gif연산자

move_iterator::operator*

반환(reference)*base().

move_iterator::operator++

저장 된 반복기를 증가 시킵니다.정확한 동작을 preincrement 또는 postincrement 작업 인지 여부에 따라 달라 집니다.

move_iterator::operator--

감소 저장된 반복기입니다.정확한 동작을 predecrement 또는 postdecrement 작업 인지 여부에 따라 달라 집니다.

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.

요구 사항

헤더: <iterator>

네임 스페이스: std

참고 항목

작업

방법: 이동 생성자 작성

참조

Lvalue가 고 Rvalue

표준 템플릿 라이브러리