Guru of the Week 条款18:Iterators(迭代子)

本文围绕迭代器展开,通过一个包含至少4个与迭代器有关问题的程序,分析了使用迭代器时可能出现的错误,如迭代器不可提领、范围无效、非法内建操纵等。最后总结使用迭代器需注意有效取值、生存期、范围及避免非法内建操纵等问题。

GotW #18 Iterators

著者:Herb Sutter

翻译:K ][ N G of @rk™

[声明]:本文内容取自www.gotw.ca网站上的Guru of the Week栏目,其著作权归原著者本人所有。译者kingofark在未经原著者本人同意的情况下翻译本文。本翻译内容仅供自学和参考用,请所有阅读过本文的人不要擅自转载、传播本翻译内容;下载本翻译内容的人请在阅读浏览后,立即删除其备份。译者kingofark对违反上述两条原则的人不负任何责任。特此声明。

 

Revision 1.0

 

Guru of the Week 条款18Iterators(迭代子)

 

难度:7 / 10

 

(每一个使用标准程序库的程序员都必须注意如下这些常见或罕见的iterator错误。你能从中找出多少错误?)

 

[问题]

如下的程序包含至少4个与iterator有关的问题。你能找出多少个?

    int main( int, char*[] ) {
   
   
      vector<Date> e;
      copy( istream_iterator<Date>( cin ),
            istream_iterator<Date>(),
            back_inserter( e ) );
      vector<Date>::iterator first =
            find( e.begin(), e.end(), "01/01/95" );
      vector<Date>::iterator last =
            find( e.begin(), e.end(), "12/31/95" );
      *last = "12/30/95";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值