关联容器引用

时间:2012-08-28 08:13:15

标签: c++ c++11

当使用关联容器时,我观察到,至少有时是一系列:

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] = ...语句查找一个值。编译器是否优化了这些查找?什么是最好的事情?

1 个答案:

答案 0 :(得分:5)

“最好的事情是什么?”

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

最后,“要做的最好的事情”是编写

代码
  • 是可读的
  • 维护
  • 自文档
  • 工作原理

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