move_iterator Class
选件类模板 move_iterator 是迭代器的包装。 move_iterator提供与迭代器它所包装的行为(存储),除此之外,将存储的迭代器的取消引用运算符更改为rvalue引用,将复制变成移动。 有关rvalues的更多信息,请参见 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;
};
备注
模板选件类描述的行为与迭代器,但,当取消引用的对象。 它存储类型 Iterator一个随机访问迭代器,访问通过成员函数 base()。 在 move_iterator 的所有操作直接在存储的迭代器执行,除此之外,operator* 的结果被隐式转换为 value_type&& 进行rvalue引用。
move_iterator 可能尚未定义的被包装的迭代器的能够操作上。 不应使用这些操作。
构造函数
类型 move_iterator对象的构造函数。 |
Typedef
模板参数的 RandomIterator同义词。 |
|
相同的名称,iterator_category 的较长 typename 表达式的同义词标识迭代器的泛型功能。 |
|
相同的名称,value_type 的较长 typename 表达式的同义词描述何种类型迭代器元素是。 |
|
相同的名称,difference_type 的较长 typename 表达式的同义词描述所需的整数类型表示中的元素之间的差异值。 |
|
模板参数的 RandomIterator同义词。 |
|
rvalue 的同义词引用 value_type&&。 |
成员函数
成员函数返回此 move_iterator包装存储的迭代器。 |
运算符
返回 (reference)*base(). |
|
增加单元的迭代器。 确切的行为取决于它是否是preincrement或postincrement操作。 |
|
递减存储的迭代器。 确切的行为取决于它是否是predecrement或postdecrement操作。 |
|
返回 &**this。 |
|
通过先减去该右侧的值返回 move_iterator(*this) -=从当前位置。 |
|
返回 (reference)*(*this + off)。 允许您指定从当前基础的偏移量在该位置获取值。 |
|
返回 move_iterator(*this) +=该值。 允许您添加到基础的偏移量在该位置获取值。 |
|
将右侧的值赋给存储的迭代器,并返回 *this。 |
|
从存储的迭代器减去该右侧的值,并返回 *this。 |
要求
标头: <iterator>
命名空间: std