共用方式為


move_iterator Class

類別樣板 move_iterator 是 Iterator 的包裝函式。move_iterator 提供相同 Iterator 所包裝的行為 (儲存),不過,前者會將儲存的 Iterator 的取值運算子變更為右值參考,將複本變更為移動。如需 rvalues 的詳細資訊,請參閱 右值參考的宣告子: & &

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,除了之外,當解除參考的物件。它會儲存型別 Iterator隨機存取 Iterator,透過成員函式 base()。在 move_iterator 的所有作業直接儲存在中之 Iterator 執行,但是有一點例外,就是 operator* 結果隱含地轉型為。 value_type&& 進行 rvalue 參考。

move_iterator 可能未定義由包裝的 Iterator 的作業可以在上。不應該使用這些作業。

Ee428021.collapse_all(zh-tw,VS.110).gif建構函式

move_iterator

型別 move_iterator物件的建構函式。

Ee428021.collapse_all(zh-tw,VS.110).gifTypedef

move_iterator::iterator_type

範本參數的 RandomIterator一個同義資料表。

move_iterator::iterator_category

相同的名稱, iterator_category 比較長的 typename 運算式的一個同義資料表識別 Iterator 的一般功能。

move_iterator::value_type

相同的名稱, value_type 比較長的 typename 運算式的一個同義資料表說明型別 Iterator 項目"的父項目為。

move_iterator::difference_type

相同的名稱, difference_type 比較長的 typename 運算式的一個同義資料表描述需求的整數類資料型別表示在項目之間的差異值。

move_iterator::pointer

範本參數的 RandomIterator一個同義資料表。

move_iterator::reference

一個同義資料表提供 rvalue 參考 value_type&&。

Ee428021.collapse_all(zh-tw,VS.110).gif成員函式

move_iterator::base

成員函式會傳回 move_iterator換行的儲存的 Iterator。

Ee428021.collapse_all(zh-tw,VS.110).gif運算子

move_iterator::operator*

傳回 (reference)*base().

move_iterator::operator++

將已儲存的 Iterator。實際的行為取決於它是否為 preincrement 或 postincrement 作業。

move_iterator::operator--

可儲存的 Iterator。實際的行為取決於它是否為 predecrement 或 postdecrement 作業。

move_iterator::operator->

傳回 &**this。

move_iterator::operator-

您可以先減去右值傳回 move_iterator(*this) -=從目前的位置。

move_iterator::operator[]

傳回 (reference)*(*this + off)。可讓您指定與目前基底的位移在該位置取得值。

move_iterator::operator+

傳回 move_iterator(*this) +=值。可讓您將傳遞至基底類別中的位移 (Offset)。在該位置取得值。

move_iterator::operator+=

將右邊的值已儲存的 Iterator,並傳回 *this。

move_iterator::operator-=

從儲存的 Iterator 減掉右邊的值,並傳回 *this。

需求

標題: <iterator>

命名空間: std

請參閱

工作

How to: 撰寫移動建構函式

參考

值和 Rvalues

標準樣板程式庫