【发布时间】:2013-02-15 13:53:45
【问题描述】:
我有一个关于迭代器和下标之间的偏好的问题。例如,如果我正在做类似的事情:
for (vector<int>::size_type i = 0; i != ivec.size(); ++i) {
ivec[i] related operation
}
for (vector<int>::iterator it = ivec.begin(); it != ivec.end(); ++it) {
*it related operation
}
哪一个更受欢迎?从以下方面来看: 1. 性能 2. 清晰度 3. 其他顾虑?
我知道这个问题之前已经讨论过link。但在另一篇文章中只谈到了 size(); 的性能成本;
假设这是关于向量的,size() 的成本可以忽略不计。
使用下标与迭代器的成本如何?
谢谢。
【问题讨论】:
-
@Rapptz 我对那里的回答不太满意
-
@AlanShore 那里有 24 个答案,肯定有一个符合您的标准。
-
扮演魔鬼代言人,类似的问题已经被问到15 times before。
标签: c++