C++ 中的插入迭代器以及其迭代器适配器

本文介绍了C++中的插入迭代器,包括std::inserter_iterator、std::back_inserter_iterator和std::front_inserter_iterator,以及它们对应的迭代器适配器。这些适配器用于在容器的不同位置插入元素,如std::inserter需要容器的insert方法,std::back_inserter使用push_back,而std::front_inserter使用push_front。
摘要由CSDN通过智能技术生成

C++ 中有三类迭代器,分别是插入迭代器(inserter),反向迭代器(reverse_iterator)和流迭代器.

这里(vs2003为例)介绍插入迭代器,插入迭代器分别是std::inserter_iterator,std::back_inserter_iterator,std::front_inserter_iterator 三类,对应的迭代器适配器应该是

std::inserter,std::back_inserter,std::front_inserter 。

1. std::inserter_iterator(std::inserter)

  // TEMPLATE FUNCTION inserter
template<class _Container,
 class _Iter> inline
 insert_iterator<_Container> inserter(_Container& _Cont, _Iter _Where)
 { // return insert_iterator
 return (std::insert_iterator<_Container>(_Cont, _Where));
 }
这是是正常的插入迭代器适配器的实现,我们看到函数需要指定容器类型和容器的开始指针(从那个位置开始插入)返回了一个按容器和容器迭代器位置构造出来的迭代器。我们以一个调用例子来说明这个。

std::vector<std::string> v1,v2;
 std::copy(v1.begin(),v1.end(),std::inserter(v2,v2.begin()));

这里表示需要把v1的所有元素插入到v2里面。调用的时序是先构造一个std::inserter 的实例A(命名为A),然后通过 std::copy 里面的循环,不断的调用适配器A的赋值运算符号,将v1 里面的元素赋值给v2。我们来看

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值