1

在使用关联容器时,我观察到,至少有时会出现一系列:

container[key].field1 = something1;
container[key].field2 = something2;
container[key].field3 = something3;

产生比比如说更小的二进制文件(可执行文件)

auto& c(container[key]);

c.field1 = something1;
c.field2 = something2;
c.field3 = something3;

我很困惑。AFAIK,需要为每个container[key] = ...语句查找一个值。编译器是否优化了这些查找?最好的事情是什么?

4

1 回答 1

5

“最好的办法是什么?”

最好的办法是不要看这些细节,因为明天(或者无论何时发布编译器、库或咖啡机的下一个版本)无论如何一切都会有所不同。

最后,“最好的办法”是编写代码

  • 可读
  • 可维护
  • 自我记录
  • 作品

因此,比较您的解决方案并保留“感觉更好”或“看起来更好”的解决方案。我可能会保留只进行一次查找的那个,因为它强调了所有事情都发生在同一个对象上的事实。

于 2012-08-28T10:19:51.043 回答