我们有一个问题是Ci++和++i C之间有性能差异吗?
C++的答案是什么?
是否有差异++i,并i++在一个for循环?它只是一个语法的东西吗?
确切重复:在C++中i ++和++ i之间是否存在性能差异?
确切重复:循环中i ++和++ i之间的区别?
什么更有效,i ++或++ i?
我只在Java和C/C++中使用过这个,但我真的要求实现它的所有语言.
在大学里我有一位教授告诉我们++我更有效率,但已经有几年了,我想从Stack Overflow社区获得意见.
Johannes Schaub 在这里声称
对于您不知道其定义的迭代器,请始终使用前缀增量形式。这将确保您的代码尽可能地通用。
for(std::vector<T>::iterator it = v.begin(); it != v.end(); ++it) {
/* std::cout << *it; ... */
}
Run Code Online (Sandbox Code Playgroud)
为什么不首先迭代它,然后开始循环(在v.begin()+ 1)?
我认为迭代器对象的想法是你可以类似地将它应用于C++容器类.但是,当我尝试遍历列表对象时,我尝试使用
for(list<int>::iterator it = obj.begin(); it < obj.end(); it++){
// some code
}
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误.为什么这不起作用?它为什么会起作用vector::iterator?是仅仅因为列表的实现是双向链表?我认为迭代器对象抽象了通过容器移动的概念,从而允许它在操作上是相同的,无论是向量还是列表.
我真的很感激澄清.