次の方法で共有


move_iterator Class

クラス テンプレート move_iterator は、反復子のラッパー クラスです。move_iterator は反復子は、ストア ()、ラップするのと同じ動作を提供し、rvalue 参照に格納されている反復子の逆参照演算子を回転以外のコピーを移動に変換します。rvalue に関する詳細については、右辺値参照宣言子: &&を参照してください。

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;
    };

解説

このテンプレート クラスは、反復子のないようにするオブジェクトについて説明します逆参照されたとき。これは、メンバー関数 base()を介してアクセス Iterator型のランダム アクセス反復子を格納します。move_iterator のすべての操作は、格納されている反復子で直接実行されます、rvalue 参照を行うにただし、operator* の結果は value_type&& に暗黙的にキャストします。

move_iterator は、ラップされた反復子によって定義されていない操作が可能である場合があります。これらの操作は使用しないでください。

Ee428021.collapse_all(ja-jp,VS.110).gifコンストラクター

move_iterator

move_iteratorオブジェクトのコンストラクター。

Ee428021.collapse_all(ja-jp,VS.110).gifTypedef

move_iterator::iterator_type

テンプレート パラメーターのシノニム RandomIterator

move_iterator::iterator_category

同じ名前、iterator_category の typename の長い式のシノニムは、反復子の一般的な容量を識別します。

move_iterator::value_type

同じ名前、value_type の typename の長い式のシノニムは、型の反復子要素がについて説明します。

move_iterator::difference_type

同じ名前、difference_type の typename の長い式のシノニムは、要素間の相違点の値を表現するために必要な型について説明します。

move_iterator::pointer

テンプレート パラメーターのシノニム RandomIterator

move_iterator::reference

rvalue の参照 value_type&&のシノニム。

Ee428021.collapse_all(ja-jp,VS.110).gifメンバー関数

move_iterator::base

このメンバー関数は move_iteratorでラップされた格納されている反復子を返します。

Ee428021.collapse_all(ja-jp,VS.110).gif演算子

move_iterator::operator*

(reference)*base().を返します

move_iterator::operator++

格納されている反復子をインクリメントします。実際の動作は、preincrement または postincrement の操作であるかによって異なります。

move_iterator::operator--

格納されている反復子をデクリメントします。実際の動作は、predecrement または postdecrement の操作であるかによって異なります。

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

参照

処理手順

方法: 移動コンストラクターを作成します

関連項目

左辺値と右辺値

標準テンプレート ライブラリ