访问嵌套数据结构的最佳方法?

0 c++ performance nested

我想知道访问大型数据结构的最佳方式(性能方面)是什么.有大约一百种方法可以做,但编译器最容易获得哪些优化?

人们可以通过访问一个值

foo[someindex].bar[indexlist[i].subelement[j]].baz[0]
Run Code Online (Sandbox Code Playgroud)

或创建一些指针别名,如

sometype_t* tmpfoo = &foo[someindex];
tmpfoo->bar[indexlist[i].subelement[j]].baz[0]
Run Code Online (Sandbox Code Playgroud)

或创建像

sometype_t &tmpfoo = foo[someindex];
tmpfoo.bar[indexlist[i].subelement[j]].baz[0]
Run Code Online (Sandbox Code Playgroud)

等等......

mik*_*ked 5

过早优化是万恶之源.编写清晰的代码,如果它太慢,请对其进行分析并查看花费的时间并在那里进行优化.

话虽如此,编译器有99%的可能性为这三个示例生成相同的代码.