在性能方面,什么会更快?有区别吗?它依赖于平台吗?
//1. Using vector<string>::iterator:
vector<string> vs = GetVector();
for(vector<string>::iterator it = vs.begin(); it != vs.end(); ++it)
{
*it = "Am I faster?";
}
//2. Using size_t index:
for(size_t i = 0; i < vs.size(); ++i)
{
//One option:
vs.at(i) = "Am I faster?";
//Another option:
vs[i] = "Am I faster?";
}
原文由 Gal Goldman 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么不写一个测试并找出答案?
编辑: 我的错 - 我以为我正在计时优化版本,但不是。在我的机器上,使用 g++ -O2 编译,迭代器版本比 operator[] 版本 稍慢,但可能并不明显。