可能重复:
在C++中预增量比后增量更快 - 是吗?如果是的话,为什么呢?
在C++中i ++和++ i之间是否存在性能差异?
我被告知,当使用STL和它的迭代器时,我应该总是使用++iter而不是iter++.
我引用:
因为它只能更快,从不慢
这是真的?
AnT*_*AnT 11
是.一般来说都是如此.后缀增量负担保留和返回迭代器的旧值的任务.这需要时间和精力,这通常会使它变慢.
对于实现传统前/后语义的所有重载增量/减量运算符通常都是如此.
这个话题被打败了.在这里搜索"prefix postfix"以获取大量更详细的解释.
你可以在这个例子中看到创建了一个temp,在postfix中...这比前缀慢,其中没有创建高级对象
// Define prefix increment operator.
Point& Point::operator++()
{
_x++;
_y++;
return *this;
}
// Define postfix increment operator.
Point Point::operator++(int)
{
Point temp = *this;
++*this;
return temp;
}
Run Code Online (Sandbox Code Playgroud)
++ iter比iter ++更快,因为不创建对象的副本
| 归档时间: |
|
| 查看次数: |
5213 次 |
| 最近记录: |