在 STL 中当需要向容器的任意位置插入元素时,就可以使用 insert_iterator 类型的迭代器。需要说明的是,该类型迭代器的底层实现,需要调用目标容器的 insert() 成员方法。
但幸运的是,STL 标准库中所有容器都提供有 insert() 成员方法,因此 insert_iterator 是唯一可用于关联式容器的插入迭代器。
#include <iterator> using namespace std;
说明
insert_iterator 的模板类定义在
<iterator>
头文件,并位于 std 命名空间中。C++ STL insert_iterator详解
语法
std::insert_iterator<Container> insert_it (container,it);
参数
迭代器适配器 功能 Container 用于指定插入的目标容器的类型。 container 用于指定具体的目标容器。 it 基础迭代器,表示新元素的插入位置。 案例
使用insert_iterator插入元素
使用 insert_iterator 在容器任意位置插入元素
#include <iostream> #include <iterator> #include <list> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; std::list<int> foo(2,1025); std::list<int>::iterator it = ++foo.begin(); std::insert_iterator< std::list<int> > insert_it = inserter(foo, it); insert_it = 1024; insert_it = 199; insert_it = 99; insert_it = 110; for (std::list<int>::iterator it = foo.begin(); it != foo.end(); ++it) { std::cout << *it << ' '; } cout << endl; return 0; }
我们在 Linux 下使用 g++ 进行编译,具体命令如下: