迭代器与下标

时间:2013-03-01 05:48:39

标签: c++

我对迭代器和下标之间的偏好有疑问。例如,如果我正在做类似的事情:

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()的成本可以忽略不计。

使用下标与迭代器的成本如何?

感谢。

1 个答案:

答案 0 :(得分:1)

性能:在大多数情况下,使用向量这些情况是相同的,因为在大多数情况下vector<T>::iterator实际上是指向T的指针。

清晰度:使用迭代器。