Udostępnij za pośrednictwem


move_iterator Class

Szablon klasy move_iterator jest otoką iterację.Move_iterator zapewnia takie samo zachowanie iteratora zawijany (sklepów), z wyjątkiem okazuje przechowywane iteratora 's nieprawidłowego operatora do odwołanie rvalue włączając kopię do przenoszenia.Aby uzyskać więcej informacji na temat rvalues, zobacz Odwołanie Rvalue; niewłaściwy deklarator: & &.

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;
    };

Uwagi

Klasa szablonu opisuje obiekt, który zachowuje się jak iterację, z wyjątkiem przypadków, kiedy należy usunąć odwołania.Przechowuje iteratora losowy dostęp typu Iterator, uzyskiwany poprzez funkcję Członkowskie base().Wszystkie operacje na move_iterator są wykonywane bezpośrednio na iteratora przechowywane, z wyjątkiem wynik operator* jest niejawnie oddanych do value_type&& rvalue odniesienie.

A move_iterator może być zdolne do operacji, które nie są zdefiniowane przez iteratora zawinięty.Operacje te nie powinny używane.

Ee428021.collapse_all(pl-pl,VS.110).gifKonstruktory

move_iterator

Konstruktor dla obiektów typu move_iterator.

Ee428021.collapse_all(pl-pl,VS.110).gifDefinicje TypeDef

move_iterator::iterator_type

Parametr szablonu synonim RandomIterator.

move_iterator::iterator_category

Synonim dłużej typename wyrażenie o tej samej nazwie, iterator_category identyfikuje ogólne możliwości iteratora.

move_iterator::value_type

Synonim dłużej typename wyrażenie o tej samej nazwie, value_type opisuje typ iteratora elementy.

move_iterator::difference_type

Synonim dłużej typename wyrażenie o tej samej nazwie, difference_type opisuje typ integralną wymagane wartości wyraźnej różnicy między elementami.

move_iterator::pointer

Parametr szablonu synonim RandomIterator.

move_iterator::reference

Synonim rvalue odniesienia value_type&&.

Ee428021.collapse_all(pl-pl,VS.110).gifFunkcje składowe

move_iterator::base

Funkcja Członkowskich zwraca iteratora przechowywane, pakowane przez to move_iterator.

Ee428021.collapse_all(pl-pl,VS.110).gifOperatory

move_iterator::operator*

Zwraca(reference)*base().

move_iterator::operator++

Zwiększa przechowywane iteratora.Dokładne zachowanie zależy od tego, czy jest preincrement lub postincrement operacji.

move_iterator::operator--

Zmniejsza przechowywane iteratora.Dokładne zachowanie zależy od tego, czy jest predecrement lub postdecrement operacji.

move_iterator::operator->

Returns &**this.

move_iterator::operator-

Zwraca move_iterator(*this) -= przez pierwszy odjęcie wartości po prawej stronie od bieżącej pozycji.

move_iterator::operator[]

Returns (reference)*(*this + off).Pozwala określić przesunięcie z bieżącej bazy do uzyskania wartości w tej lokalizacji.

move_iterator::operator+

Zwraca move_iterator(*this) += wartości.Umożliwia dodawanie przesunięcie do podstawy do uzyskania wartości w tej lokalizacji.

move_iterator::operator+=

Zwiększa wartość prawej iteratora przechowywanych i zwraca *this.

move_iterator::operator-=

Odejmuje się po prawej stronie wartości z iteratora przechowywanych i zwraca *this.

Wymagania

Nagłówek: <iterator>

Obszar nazw: std

Zobacz też

Zadania

Jak: Konstruktor Przenieś zapisu

Informacje

Lvalues i Rvalues

Standardowa biblioteka szablonu