gpt4 book ai didi

c++ -++iterator 和 iterator++ 之间的性能差异?

转载 作者:IT老高 更新时间:2023-10-28 12:55:17 25 4
gpt4 key购买 nike

我的同事声称对于对象类型,前增量比后增量更有效

例如

std::vector<std::string> vec;

... insert a whole bunch of strings into vec ...

// iterate over and do stuff with vec. Is this more efficient than the next
// loop?
std::vector<std::string>::iterator it;
for (it = vec.begin(); it != vec.end(); ++it){

}

// iterate over and do stuff with vec. Is this less efficient than the previous loop?
std::vector<std::string>::iterator it;
for (it = vec.begin(); it != vec.end(); it++){

}

最佳答案

后增量必须返回迭代器在递增之前的值;因此,在使用适当的增量更改它之前,需要将先前的值复制到某个地方,因此它可以返回。额外的工作可能很少或很多,但它肯定不能小于零,与 preincrement 相比,它可以简单地执行递增然后返回刚刚更改的值 -- 不复制//保存//等必要的。

因此,除非您明确必须具有后增量(因为您以某种方式使用“增量前的值”),否则您应该始终使用前增量。

关于c++ -++iterator 和 iterator++ 之间的性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1303899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com