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.
Konstruktory
Konstruktor dla obiektów typu move_iterator. |
Definicje TypeDef
Parametr szablonu synonim RandomIterator. |
|
Synonim dłużej typename wyrażenie o tej samej nazwie, iterator_category identyfikuje ogólne możliwości iteratora. |
|
Synonim dłużej typename wyrażenie o tej samej nazwie, value_type opisuje typ iteratora elementy. |
|
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. |
|
Parametr szablonu synonim RandomIterator. |
|
Synonim rvalue odniesienia value_type&&. |
Funkcje składowe
Funkcja Członkowskich zwraca iteratora przechowywane, pakowane przez to move_iterator. |
Operatory
Zwraca(reference)*base(). |
|
Zwiększa przechowywane iteratora.Dokładne zachowanie zależy od tego, czy jest preincrement lub postincrement operacji. |
|
Zmniejsza przechowywane iteratora.Dokładne zachowanie zależy od tego, czy jest predecrement lub postdecrement operacji. |
|
Returns &**this. |
|
Zwraca move_iterator(*this) -= przez pierwszy odjęcie wartości po prawej stronie od bieżącej pozycji. |
|
Returns (reference)*(*this + off).Pozwala określić przesunięcie z bieżącej bazy do uzyskania wartości w tej lokalizacji. |
|
Zwraca move_iterator(*this) += wartości.Umożliwia dodawanie przesunięcie do podstawy do uzyskania wartości w tej lokalizacji. |
|
Zwiększa wartość prawej iteratora przechowywanych i zwraca *this. |
|
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