C++ 迭代器库 - insert_iterator


描述

它是一种特殊的输出迭代器,旨在允许通常将元素覆盖为副本的算法,以在容器中的特定位置插入新元素。

宣言

以下是 std::insert_iterator 的声明。

C++11

template <class Container> class insert_iterator;

参数

Container - 它是一个容器类。

返回值

没有任何

例外情况

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

时间复杂度

随机访问迭代器的常量。

例子

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

#include <iostream>
#include <iterator>
#include <list>
#include <algorithm>

int main () {
   std::list<int> foo, bar;
   for (int i = 10; i >= 5; i--) {
      foo.push_back(i); bar.push_back(i*10);
   }

   std::list<int>::iterator it = foo.begin();
   advance(it,3);

   std::insert_iterator< std::list<int> > insert_it (foo,it);

   std::copy (bar.begin(),bar.end(),insert_it);

   std::cout << "foo:";
   for ( std::list<int>::iterator it = foo.begin(); it!= foo.end(); ++it )
      std::cout << ' ' << *it;
   std::cout << '\n';

   return 0;
}

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

foo: 10 9 8 100 90 80 70 60 50 7 6 5
迭代器.htm