我正在编写一个需要尽可能好的应用程序.我正在使用VS2012作为我的IDE(和编译器).
我注意到,因为我在向量上迭代,与迭代器相比,指针解决方案在速度方面要快得多.这是为什么?我的意思是,迭代器基本上是一回事.它至少应该是.
看看这个例子:
std::vector<int> v; for (std::vector<int>::iterator it = v.begin(); it != v.end(); it++) { // Do stuff with *it } for (int* i = &v[0],i <= &v[v.size()-1]; i++) { // Do stuff with *i }
编译器是否需要进行任何优化?我正在使用所有标准设置,因此已启用-O2.提前致谢.
编辑:
我在Release中编译,并使用Ctrl F5运行(没有调试).
EDIT2:
实际的源代码是quicksort的一个实现. Here is a link to the full source,很短,所以检查一下.