STL 中的 front_insert_iterator 和 back_insert_iterator 正好相反,front_insert_iterator 迭代器的功能是向目标容器的头部插入新元素。并且,由于此类型迭代器的底层实现需要借助目标容器的 push_front() 成员方法,这意味着,只有包含 push_front() 成员方法的容器才能使用该类型迭代器。
C++ STL 标准库中,提供有 push_front() 成员方法的容器,仅有 deque、list 和 forward_list。
#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++ 进行编译,具体命令如下: