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 条款18:Iterators(迭代子)
难度: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";

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

被折叠的 条评论
为什么被折叠?



