public member function
<iterator>

std::move_iterator::operator++

(1)
move_iterator& operator++();
(2)
move_iterator  operator++(int);
前进迭代器位置
将迭代器向前移动一个位置。

内部,前缀递增版本(1)只是将其操作反映到其基迭代器

后缀递增版本(2)的实现行为等同于
1
2
3
4
5
move_iterator operator++(int) {
  move_iterator temp = *this;
  ++(*this);
  return temp;
}

参数

无(第二个版本重载了后缀递增运算符)。

返回值

前缀递增版本(1)返回*this
后缀递增版本(2)返回调用前*this的值。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// move_iterator::operator++ example
#include <iostream>     // std::cout
#include <iterator>     // std::move_iterator
#include <vector>       // std::vector
#include <string>       // std::string

int main () {
  std::string str[] = {"one","two","three"};
  std::vector<std::string> foo;

  std::move_iterator<std::string*> it (str);
  for (int i=0; i<3; ++i) {
    foo.push_back(*it);
    ++it;
  }

  std::cout << "foo:";
  for (std::string& x : foo) std::cout << ' ' << x;
  std::cout << '\n';

  return 0;
}

输出

foo: one two three


数据竞争

修改对象。
返回的迭代器可用于访问或修改指向的元素。

异常安全

提供的保证级别与增加(以及复制(2)基迭代器相同。

另见