Boost C++ 库

...世界上最受推崇和设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码规范

类模板 move_iterator - Boost C++ 函数库
PrevUpHomeNext

类模板 move_iterator

boost::move_iterator

提要

// In header: <boost/move/iterator.hpp>

template<typename It> 
class move_iterator {
public:
  // types
  typedef It                                                                  iterator_type;    
  typedef boost::movelib::iterator_traits< iterator_type >::value_type        value_type;       
  typedef value_type &&                                                       reference;        
  typedef It                                                                  pointer;          
  typedef boost::movelib::iterator_traits< iterator_type >::difference_type   difference_type;  
  typedef boost::movelib::iterator_traits< iterator_type >::iterator_category iterator_category;

  // public member functions
  move_iterator();
  explicit move_iterator(const It &);
  template<typename U> move_iterator(const move_iterator< U > &);
  reference operator*() const;
  pointer operator->() const;
  move_iterator & operator++();
  move_iterator< iterator_type > operator++(int);
  move_iterator & operator--();
  move_iterator< iterator_type > operator--(int);
  move_iterator< iterator_type > operator+(difference_type) const;
  move_iterator & operator+=(difference_type);
  move_iterator< iterator_type > operator-(difference_type) const;
  move_iterator & operator-=(difference_type);
  reference operator[](difference_type) const;
};

描述

类模板 move_iterator 是一个迭代器适配器,其行为与底层迭代器相同,但其解引用运算符会将底层迭代器解引用运算符返回的值隐式转换为右值引用。 可以使用移动迭代器调用某些泛型算法,以用移动代替复制。

move_iterator 公有成员函数

  1. move_iterator();
  2. explicit move_iterator(const It & i);
  3. template<typename U> move_iterator(const move_iterator< U > & u);
  4. reference operator*() const;
  5. pointer operator->() const;
  6. move_iterator & operator++();
  7. move_iterator< iterator_type > operator++(int);
  8. move_iterator & operator--();
  9. move_iterator< iterator_type > operator--(int);
  10. move_iterator< iterator_type > operator+(difference_type n) const;
  11. move_iterator & operator+=(difference_type n);
  12. move_iterator< iterator_type > operator-(difference_type n) const;
  13. move_iterator & operator-=(difference_type n);
  14. reference operator[](difference_type n) const;

PrevUpHomeNext