C++ 性能 : use getter in loop or save it to a variable first

标签 c++ performance loops

我想知道使用 getter 在循环中一遍又一遍地获取相同的属性是否会影响性能。我应该先将它保存到变量中吗?请看下面的例子:

直接使用getter:

for(int i=0; i<1000000; ++i) {
  print("Phone = %d\n", myobj->getCity("Foo")->getPhone(i);
}



编辑:

循环约束呢?

for(int i=0; i<myobj->totalPhoneNum(); ++i) {...}

int totalPhoneNum = myobj->totalPhoneNum();
for(int i=0; i<totalPhoneNum; ++i) {...}

最佳答案

是的,你应该。不管它是否对性能有任何影响,它在语义上都更加清晰。通过首先将它保存到一个变量,您表明它是一个循环不变量。

关于C++ 性能 : use getter in loop or save it to a variable first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940392/

相关文章:

c++ - 在初始化中使用新声明的变量 (int x = x+1)?

c++ - cmake:在 cmake 脚本执行期间尝试调用 msbuild

c++ - tbb 中 parallel_reduce 的 Reduce 是什么?

c++ - 什么时候物体足够重以避免复制?

php - 如何根据 PHP 中的键名删除数组项?

Python for for循环优化

loops - react native foreach 循环

python - Pycharm 调试器比正常运行慢得多

javascript - 在长度为 N 的字符串中查找所有长度为 1 到 N 的字符串

Python:内存泄漏?