move_iterator 類別
類別樣板 move_iterator 是迭代器的包裝函式。 move_iterator 和它所包裝 (儲存) 的迭代器提供相同的行為,不過,它會將預存迭代器的取值運算子變更為右值參考,而將複製變成移動。 如需右值的詳細資訊,請參閱右值參考宣告子:&&。
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&& 以建立右值參考。
move_iterator 可能會執行包裝的迭代器所未定義的作業。 不應該使用這些作業。
建構函式
move_iterator 類型物件的建構函式。 |
Typedef
RandomIterator 樣板參數的同義字。 |
|
同名、較長 typename 運算式的同義字,iterator_category 識別迭代器的一般功能。 |
|
同名、較長 typename 運算式的同義字,value_type 描述迭代器項目的類型。 |
|
同名、較長 typename 運算式的同義字,difference_type 描述表示項目之間的差異值所需的整數類資料類型。 |
|
RandomIterator 樣板參數的同義字。 |
|
rvalue 參考 value_type&& 的同義字。 |
成員函式
成員函式傳回這個 move_iterator 所包裝的預存迭代器。 |
運算子
傳回 (reference)*base(). |
|
遞增預存迭代器。 確切行為取決於它是否前置遞增或後置遞增作業。 |
|
遞減預存迭代器。 確切行為取決於它是否前置遞減或後置遞減作業。 |
|
傳回 &**this。 |
|
先從目前位置減去右值,傳回 move_iterator(*this) -= 。 |
|
傳回 (reference)*(*this + off)。 可讓您指定距離目前基底的位移,取得該位置上的值。 |
|
傳回 move_iterator(*this) += 值。 可讓您將位移加入至基底,取得該位置上的值。 |
|
將右值加入到預存迭代器,並傳回 *this。 |
|
從預存迭代器減去右值,並傳回 *this。 |
需求
標頭:<iterator>
命名空間: std