STL insert_iterator

STL insert_iterator教程

STL 中当需要向容器的任意位置插入元素时,就可以使用 insert_iterator 类型的迭代器。需要说明的是,该类型迭代器的底层实现,需要调用目标容器的 insert() 成员方法。

但幸运的是,STL 标准库中所有容器都提供有 insert() 成员方法,因此 insert_iterator 是唯一可用于关联式容器的插入迭代器。

STL 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++ 进行编译,具体命令如下:

g++ insert_iterator.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

07_STL insert_iterator.png

我们使用了 insert_iterator 在容器的任意位置插入了元素。

STL insert_iterator总结

在 STL 中当需要向容器的任意位置插入元素时,就可以使用 insert_iterator 类型的迭代器。需要说明的是,该类型迭代器的底层实现,需要调用目标容器的 insert() 成员方法。