Effective STL 05 区间成员函数

************************************************

时间:2013年06月08日

作者:常保龙

地点:核所C105

************************************************ 

区间构造

所有标准容器都提供这种形式的构造函数:

container::container(InputIterator begin,	// 区间的起点
			InputIterator end);	// 区间的终点
区间插入

所有标准序列容器都提供这种形式的insert:

void container::insert(iterator position,	// 区间插入的位置
			InputIterator begin,	// 插入区间的起点
			InputIterator end);	// 插入区间的终点

关联容器使用它们的比较函数来决定元素要放在哪里,所以它们了省略position参数。

void container::insert(lnputIterator begin, InputIterator end); 
区间删除

每个标准容器都提供了一个区间形式的erase,但是序列和关联容器的返回类型不同。序列容器提供了这个:

iterator container::erase(iterator begin, iterator end); 

而关联容器提供这个:

void container::erase(iterator begin, iterator end); 
如果erase的关联容器版本返回一个迭代器(被删除的那个元素的下一个)会招致一个无法接受的性能下降。

区间赋值

就像我在这个条款的一开始提到的,所有标准列容器都提供了区间形式的assign:

void container::assign(InputIterator begin, InputIterator end);

尽量使用区间成员函数来代替单元素兄弟的三个可靠的论点:

1、区间成员函数更容易写

2、它们更清楚地表达你的意图

3、提供了更高的性能

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值