C++ 迭代器库 - move_iterator


描述

它是一个迭代器适配器,其行为与底层迭代器完全相同。

宣言

以下是 std::move_iterator 的声明。

C++11

template <class Iterator> class move_iterator;

参数

迭代器- 它是双向迭代器类型。

返回值

没有任何

例外情况

如果 x 在对其应用一元运算符& 时以某种方式抛出异常,则该函数永远不会抛出异常。

时间复杂度

随机访问迭代器的常量。

例子

以下示例显示了 std::move_iterator 的用法。

#include <iostream>     
#include <iterator>     
#include <vector>       
#include <string>       
#include <algorithm>    

int main () {
   std::vector<std::string> foo (3);
   std::vector<std::string> bar {"sai","ram","krishna"};

   typedef std::vector<std::string>::iterator Iter;

   std::copy ( std::move_iterator<Iter>(bar.begin()),
               std::move_iterator<Iter>(bar.end()),
               foo.begin() );

   bar.clear();

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

   return 0;
}

让我们编译并运行上面的程序,这将产生以下结果 -

foo: sai ram krishna
迭代器.htm