Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Šablona move_iterator třídy je obálka pro iterátor. Move_iterator poskytuje stejné chování jako iterátor, který zabalí (obchody), s výjimkou toho, že změní operátor dereference uloženého iterátoru na odkaz rvalue a převede kopii na přesunutí. Další informace o hodnotách rvalue naleznete v tématu Referenční deklarátor Rvalue: &>.
Syntaxe
class move_iterator;
Poznámky
Šablona třídy popisuje objekt, který se chová jako iterátor s výjimkou případů, kdy se dereferenced. Ukládá iterátor náhodného přístupu typu Iterator, který je přístupný prostřednictvím členské funkce base(). Všechny operace na objektu a move_iterator jsou prováděny přímo na uloženém iterátoru s tím rozdílem, že výsledek operator* je implicitně přetypován tak, aby value_type&& odkaz na hodnotu rvalue.
Je move_iterator možné, že operace, které nejsou definované zabaleným iterátorem, můžou být schopné. Tyto operace by se neměly používat.
Konstruktory
| Konstruktor | Popis |
|---|---|
| move_iterator | Konstruktor pro objekty typu move_iterator. |
Typedefs
| Název typu | Popis |
|---|---|
| iterator_type | Synonymum pro parametr RandomIteratoršablony . |
| iterator_category | Synonymum delšího typename výrazu stejného názvu iterator_category identifikuje obecné schopnosti iterátoru. |
| value_type | Synonymum delšího typename výrazu stejného názvu popisuje typ value_type prvků iterátoru. |
| difference_type | Synonymum delšího typename výrazu stejného názvu difference_type popisuje celočíselný typ potřebný k vyjádření hodnot rozdílů mezi prvky. |
| ukazatel | Synonymum pro parametr RandomIteratoršablony . |
| odkaz | Synonymum pro rvalue odkaz value_type&&. |
Členské funkce
| Členová funkce | Popis |
|---|---|
| base | Členová funkce vrátí uložený iterátor zabalený tímto move_iterator. |
Operátory
| Operátor | Popis |
|---|---|
| move_iterator::operator* | Vrací objekt (reference)*base(). |
| move_iterator::operator++ | Zvýší uložený iterátor. Přesné chování závisí na tom, jestli se jedná o předvykrementační nebo postinkrementační operaci. |
| move_iterator::operator-- | Sníží uložený iterátor. Přesné chování závisí na tom, jestli se jedná o předkrement nebo operaci následného zvýšení. |
move_iterator::operator-> |
Vrací objekt &**this. |
| move_iterator::operator- | Vrátí move_iterator(*this) -= první odečítáním hodnoty vpravo od aktuální pozice. |
| move_iterator::operator[] | Vrací objekt (reference)*(*this + off). Umožňuje určit posun od aktuálního základu k získání hodnoty v tomto umístění. |
| move_iterator::operator+ | Vrátí move_iterator(*this) += hodnotu. Umožňuje přidat posun k základu k získání hodnoty v tomto umístění. |
| move_iterator::operator+= | Přidá hodnotu vpravo do uloženého iterátoru a vrátí hodnotu *this. |
| move_iterator::operator-= | Odečte hodnotu vpravo od uloženého iterátoru a vrátí *this. |
Požadavky
Header:<iterator>
Obor názvů: std
move_iterator::base
Vrátí uložený iterátor pro toto move_iterator.
RandomIterator base() const;
Poznámky
Členová funkce vrátí uložený iterátor.
move_iterator::d ifference_type
Typ difference_type je move_iterator typedef založen na vlastnosti difference_typeiterátoru a lze jej zaměnitelně s ním.
typedef typename iterator_traits<RandomIterator>::difference_type difference_type;
Poznámky
Typ je synonymem pro vlastnost typename iterator_traits<RandomIterator>::pointeriterátoru .
move_iterator::iterator_category
Typ iterator_category je move_iterator typedef založen na vlastnosti iterator_categoryiterátoru a lze jej zaměnitelně s ním.
typedef typename iterator_traits<RandomIterator>::iterator_category iterator_category;
Poznámky
Typ je synonymem pro vlastnost typename iterator_traits<RandomIterator>::iterator_categoryiterátoru .
move_iterator::iterator_type
Typ iterator_type je založen na parametru RandomIterator šablony pro šablonu move_iteratortřídy a lze jej použít zaměnitelně na svém místě.
typedef RandomIterator iterator_type;
Poznámky
Typ je synonymem pro parametr RandomIteratoršablony .
move_iterator::move_iterator
Vytvoří iterátor přesunutí. Použije parametr jako uložený iterátor.
move_iterator();
explicit move_iterator(RandomIterator right);
template <class Type>
move_iterator(const move_iterator<Type>& right);
Parametry
Vpravo
Iterátor, který se má použít jako uložený iterátor.
Poznámky
První konstruktor inicializuje uložený iterátor s jeho výchozí konstruktor. Zbývající konstruktory inicializují uložený iterátor pomocí base.base().
move_iterator::operator+=
Přidá posun uloženého iterátoru, aby uložený iterátor odkazuje na prvek v novém aktuálním umístění. Operátor pak přesune nový aktuální prvek.
move_iterator& operator+=(difference_type _Off);
Parametry
_Pryč
Posun, který se má přidat k aktuální pozici, aby bylo možné určit novou aktuální pozici.
Návratová hodnota
Vrátí nový aktuální prvek.
Poznámky
Operátor přidá _Off do uloženého iterátoru. Pak vrátí *this.
move_iterator::operator-=
Přesune zadaný počet předchozích prvků. Tento operátor odečte posun od uloženého iterátoru.
move_iterator& operator-=(difference_type _Off);
Parametry
Poznámky
Operátor vyhodnotí *this += -_Off. Pak vrátí *this.
move_iterator::operator++
Zvýší uložený iterátor, který patří do tohoto move_iteratorobjektu . K aktuálnímu prvku přistupuje operátor postincrement. Další prvek je přístupný operátorem preinkrementu.
move_iterator& operator++();
move_iterator operator++(int);
Parametry
Poznámky
První operátor (preincrement) zvýší uložený iterátor. Pak vrátí *this.
Druhý operátor (postincrement) vytvoří kopii *this, vyhodnotí ++*this. Potom vrátí kopii.
move_iterator::operator+
Vrátí pozici iterátoru rozšířenou o libovolný počet prvků.
move_iterator operator+(difference_type _Off) const;
Parametry
Poznámky
Operátor vrátí move_iterator(*this) += _Off.
move_iterator::operator[]
Umožňuje přístup indexu pole k prvkům v rozsahu move iterator.
reference operator[](difference_type _Off) const;
Parametry
Poznámky
Operátor vrátí (reference)*(*this + _Off).
move_iterator::operator--
Operátory členů před a podekrementace provádějí dekrementace uloženého iterátoru.
move_iterator& operator--();
move_iterator operator--();
Parametry
Poznámky
První operátor členu (predekrement) dekrementuje uložený iterátor. Pak vrátí *this.
Druhý operátor (postdekrement) vytvoří kopii *this, vyhodnotí --*this. Potom vrátí kopii.
move_iterator::operator-
Dekrementuje uložený iterátor a vrátí uvedenou hodnotu.
move_iterator operator-(difference_type _Off) const;
Parametry
Poznámky
Operátor vrátí move_iterator(*this) -= _Off.
move_iterator::operator*
Dereferences uložený iterátor a vrátí hodnotu. Chová se jako přiřazení rvalue reference přesunutí a provádí ho. Operátor přenese aktuální prvek ze základního iterátoru. Následující prvek se stane novým aktuálním prvkem.
reference operator*() const;
Poznámky
Operátor vrátí (reference)*base().
move_iterator::operator->
Stejně jako normální RandomIterator operator->poskytuje přístup k polím, která patří k aktuálnímu prvku.
pointer operator->() const;
Poznámky
Operátor vrátí &**this.
move_iterator::p ointer
pointer Typ je typedef založen na náhodném iterátoru RandomIterator pro move_iterator, a lze jej použít zaměnitelně.
typedef RandomIterator pointer;
Poznámky
Typ je synonymem pro RandomIterator.
move_iterator::reference
Typ je typedef založen na value_type&& move_iterator, a lze použít zaměnitelně s value_type&&.reference
typedef value_type&& reference;
Poznámky
Typ je synonymem pro value_type&&, což je rvalue odkaz.
move_iterator::value_type
Typ value_type je move_iterator typedef založen na vlastnosti value_typeiterátoru a lze jej zaměnitelně s ním.
typedef typename iterator_traits<RandomIterator>::value_type value_type;
Poznámky
Typ je synonymem pro vlastnost typename iterator_traits<RandomIterator>::value_typeiterátoru .
Viz také
<iterátor>
L-hodnoty a r-hodnoty
Konstruktory a operátory přiřazení pro přesunutí (C++)
Standardní knihovna C++ – referenční dokumentace