首页 > 解决方案 > 最佳实践:在循环或普通数组访问中使用对对象的引用?

问题描述

我去一个对象数组让我们说100:数据data_array [100]。在 c++98 中循环访问这些对象的最佳实践是什么。

1.

for(int i=0;i<100;++i)
{
    Data& data_obj = data_array[i];
  // do a lot of with it, call functions and so on 
}

2.

for(int i=0;i<100;++i)
{
  // do a lot of with it, call functions and so on but always use data_array[i]
}

使用方法 1 超过 2 时是否会降低性能?或者编译器优化会消除任何差异吗?编写代码的首选方式是什么?

PS:我手头没有个人电脑来测试性能。

标签: c++98

解决方案


如果您有反汇编器,您可以阅读汇编代码并检查两种方式之间的差异很小。事实上 data_array[i] 总是被转换成一个临时变量.. 但是第一种方式,我认为代码更具可读性


推荐阅读