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