共用方式為


move_iterator 類別

類別樣板 move_iterator 是迭代器的包裝函式。 move_iterator提供與它包裝的反覆運算器相同的行為(stores),不同之處在於它會將預存反覆運算器的取值運算子轉換成右值參考,將複本轉換成移動。 如需有關 rvalue 的詳細資訊,請參閱 Rvalue 參考宣告子:&&

語法

class move_iterator;

備註

類別範本描述對象的行為與反覆運算器類似,但取值時除外。 它會儲存 Iterator 類型的隨機存取迭代器,此迭代器可透過成員函式 base() 來存取。 move_iterator 的所有作業是直接在預存迭代器上執行,不過,operator* 的結果會隱含轉型為 value_type&& 以建立右值參考。

move_iterator可能能夠執行未由包裝反覆運算器定義的作業。 不應使用這些作業。

建構函式

建構函式 描述
move_iterator move_iterator 類型物件的建構函式。

Typedefs

類型名稱 描述
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

需求

Header:<iterator>

命名空間:std

move_iterator::base

傳回此 move_iterator 的預存迭代器。

RandomIterator base() const;

備註

成員函式會傳回儲存的迭代器。

move_iterator::difference_type

difference_type別是以move_iteratortypedef反覆運算器特性difference_type為基礎,而且可以與其交換使用。

typedef typename iterator_traits<RandomIterator>::difference_type difference_type;

備註

這個類型與迭代器特性 typename iterator_traits<RandomIterator>::pointer 同義。

move_iterator::iterator_category

iterator_category別是以move_iteratortypedef反覆運算器特性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
要加入至目前位置的位移,藉以判斷目前新位置。

傳回值

傳回新的目前項目。

備註

運算子會將_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 是一個 typedef,以 move_iteratorvalue_type&& 為基礎,可與 value_type&& 交替使用。

typedef value_type&& reference;

備註

此類型與 value_type&& 同義,後者是一個 rvalue 參考。

move_iterator::value_type

value_type別是以move_iteratortypedef反覆運算器特性value_type為基礎,而且可以與其交換使用。

typedef typename iterator_traits<RandomIterator>::value_type   value_type;

備註

這個類型與迭代器特性 typename iterator_traits<RandomIterator>::value_type 同義。

另請參閱

<iterator>
Lvalues 和 Rvalues
移動建構函式和移動指派運算子 (C++)
C++ 標準程式庫參考