C++插入迭代器

1、插入器基本概念——《C++ primer 5th》

      插入器(插入迭代器)是一种迭代器适配器,它接受一个容器,生成一个迭代器,能实现向容器添加元素。当我们通过一个插入迭代器进行赋值时,该迭代器调用容器操作来向给定容器的指定位置插入一个元素。使用前需include <iterator>   。

插入迭代器操作
it = t在 it 指定的当前位置插入值 t 。假定 c 是it绑定的容器,依赖于插入迭代器的不同种类,此赋值会分别调用 c.push_back(t) 、c.push_front(t) 或c.insert(t,p)其中 p 为传递给inserter 的迭代器位置
*it,++it,it++这些操作虽然存在,但不会对it做任何事情。每个操作都返回 it

2、实例演示

#include <iostream>
#include <iterator>
#include <list>
using namespace std;
void op(list<int> li) {
	for (int i : li) {
		cout << i << ends;
	}
	cout << endl;
}
int main(void)
{
	list<int> li;
	auto b_it=back_inserter(li);   
	auto f_it = front_inserter(li);
	auto it = inserter(li, li.begin());

	for (int i = 0; i < 5; ++i) {
		b_it = i;
	}
	cout << "back_inserter" << endl;
	op(li);

	for (int i = 5; i < 10; ++i) {
		f_it = i;
	}
	cout << "front_inserter" << endl;
	op(li);

	for (int i = 10; i < 15; ++i) {
		it = i;
	}
	cout << "inserter" << endl;
	op(li);
}
输出结果为

backinserter
0 1 2 3 4
front_inserter
9 8 7 6 5 0 1 2 3 4
inserter
9 8 7 6 5 0 1 2 3 4 10 11 12 13 14
请按任意键继续. . .

注意要使用插入器,前提是该容器支持其基础实现。比如vector不支持push_front    就不可以使用front_inserter





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值