对于C++中的循环的效率问题的疑问

2012-04-27 14:58:35 +08:00
 lixiang
对于C++中的循环,比如一个vector<int> a;
for(vector<int>::iterator it = a.begin(); it != a.end(); ++it)和把 it != a.end()从循环拿出,变成 end = a.end();
再for(vector<int>::iterator it = a.begin(); it != end; ++it),效率上有很大区别么,同样的问题,比如循环中用到size()函数
2557 次点击
所在节点    问与答
1 条回复
keakon
2012-04-30 17:17:58 +08:00
如果你在遍历时插入或删除了vector中的元素,end()是可能变化的。不过vector::end()会创建iterator对象,开销有点大。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/33831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX