STL front_insert_iterator

STL front_insert_iterator教程

STL 中的 front_insert_iterator 和 back_insert_iterator 正好相反,front_insert_iterator 迭代器的功能是向目标容器的头部插入新元素。并且,由于此类型迭代器的底层实现需要借助目标容器的 push_front() 成员方法,这意味着,只有包含 push_front() 成员方法的容器才能使用该类型迭代器。

C++ STL 标准库中,提供有 push_front() 成员方法的容器,仅有 deque、list 和 forward_list。

STL front_insert_iterator头文件详解

语法

#include <iterator> using namespace std;

说明

front_insert_iterator 的模板类定义在 <iterator> 头文件,并位于 std 命名空间中。

C++ STL front_insert_iterator详解

语法

std::front_insert_iterator<Container> front_it (container);

参数

迭代器适配器 功能
Container 用于指定插入的目标容器的类型。
container 用于指定具体的目标容器。

案例

使用front_insert_iterator插入元素

使用 front_insert_iterator 在容器头部插入元素

#include <iostream> #include <iterator> #include <forward_list> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; std::forward_list<int> foo; std::front_insert_iterator< std::forward_list<int> > front_it = front_inserter(foo); front_it = 1024; front_it = 110; front_it = 99; front_it = 101; for (std::forward_list<int>::iterator it = foo.begin(); it != foo.end(); ++it) { std::cout << *it << ' '; } cout << endl; return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

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

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

06_STL front_insert_iterator.png

我们使用了 front_insert_iterator 在容器的头部插入了元素。

STL front_insert_iterator总结

STL 中的 front_insert_iterator 和 back_insert_iterator 正好相反,front_insert_iterator 迭代器的功能是向目标容器的头部插入新元素。