尽量使用区间成员函数代替它们的单元素兄弟

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

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

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

3、而且它们提供了更高的性能。


快!给定两个vector,v1和v2,使v1的内容和v2的后半部分一样的最简单方式是什么?不要为“当v2有偶数个元素时才有一半”而烦恼,只要做一些合理的东西。
时间到!如果你的答案是
v1.assign(v2.begin() + v2.size() / 2, v2.end()); 
或者其他很相似的东西,你就答对了,可以获得金质奖章


区间函数:

在下面的,参数类型iterator意思是容器的迭代器类型,也就是container::iterator。另一方面,参数类型InputIterator意思是可以接受任何输入迭代器。

1、区间构造。所有标准容器都提供这种形式的构造函数: 
container::container(InputIterator begin,    // 区间的起点
                                InputIterator end);     // 区间的终点


2、 区间插入。所有标准序列容器都提供这种形式的insert: 
void container::insert(iterator position,         // 区间插入的位置
                                 InputIterator begin,    // 插入区间的起点
                                 InputIterator end);     // 插入区间的终点

关联容器使用它们的比较函数来决定元素要放在哪里,所以它们了省略position参数。
void container::insert(lnputIterator begin, InputIterator end); 


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

序列容器提供了这个: 
iterator container::erase(iterator begin, iterator end); 


而关联容器提供这个:
void container::erase(iterator begin, iterator end);


4、区间赋值。就像我在这个条款的一开始提到的,

所有标准列容器都提供了区间形式的assign: 
void container::assign(InputIterator begin, InputIterator end);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值