move_iterator クラス
クラス テンプレート move_iterator
は反復子のラッパーです。 move_iteratorは、格納されている反復子の逆参照演算子を右辺値参照に変換し、コピーを移動に変換する点を除き、ラップする反復子 (ストア) と同じ動作を提供します。 右辺値の詳細については、「右辺値参照宣言子: &&」をご覧ください。
構文
class move_iterator;
解説
このクラス テンプレートは、逆参照時以外は反復子のように動作するオブジェクトを表します。 これは、メンバー関数 base()
を介してアクセスされる Iterator
型のランダム アクセス反復子を格納します。 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 のシノニム。 |
参照先 | 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 を返します。 |
要件
ヘッダー: <iterator>
名前空間: std
move_iterator::base
この move_iterator
の格納されている反復子を返します。
RandomIterator base() const;
解説
このメンバー関数は、格納されている反復子を返します。
move_iterator::difference_type
difference_type
型は反復子の特徴difference_type
に基づくmove_iterator
typedef
であり、同じ意味で使用できます。
typedef typename iterator_traits<RandomIterator>::difference_type difference_type;
解説
この型は、反復子特性 typename iterator_traits<RandomIterator>::pointer
の同意語です。
move_iterator::iterator_category
iterator_category
型は反復子の特徴iterator_category
に基づくmove_iterator
typedef
であり、同じ意味で使用できます。
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
に属する格納されている反復子をインクリメントします。 現在の要素は、postincrement 演算子によってアクセスされます。 次の要素は前置インクリメント演算子によってアクセスされます。
move_iterator& operator++();
move_iterator operator++(int);
パラメーター
解説
最初の (前置インクリメント) 演算子は格納されている反復子をインクリメントします。 その後、*this
を返します。
2 番目の (後置インクリメント) 演算子は *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--
Predecrement と postdecrement メンバー演算子は、格納されている反復子でデクリメントを実行します。
move_iterator& operator--();
move_iterator operator--();
パラメーター
解説
最初のメンバー演算子 (predecrement) は、格納されている反復子をデクリメントします。 その後、*this
を返します。
2 番目の (postdecrement) 演算子は、*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
は、move_iterator
の value_type&&
に基づく typedef
で、value_type&&
の同義語として使用できます。
typedef value_type&& reference;
解説
この型は、右辺値参照である value_type&&
のシノニムです。
move_iterator::value_type
value_type
型は反復子の特徴value_type
に基づくmove_iterator
typedef
であり、同じ意味で使用できます。
typedef typename iterator_traits<RandomIterator>::value_type value_type;
解説
この型は、反復子特性 typename iterator_traits<RandomIterator>::value_type
の同意語です。
関連項目
<iterator>
左辺値と右辺値
移動コンストラクターと移動代入演算子 (C++)
C++ 標準ライブラリ リファレンス