当使用关联容器时,我观察到,至少有时是一系列:
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] = ...
语句查找一个值。编译器是否优化了这些查找?什么是最好的事情?
答案 0 :(得分:5)
“最好的事情是什么?”
最好的办法是不要看这些细节,因为明天(或者下一版本的编译器,库或咖啡机发布),无论如何都会有所不同。
最后,“要做的最好的事情”是编写
代码因此,比较您的解决方案并保持“感觉更好”或“看起来更好”的解决方案。我可能会保留只执行一次查找的那个,因为它强调所有事情都发生在同一个对象上。