简单的循环C++为什么

hat*_*ack 0 c++ for-loop

我只是想知道为什么我会在c ++中这样做

for(int i=0, n=something.size(); i<n; ++i) 
Run Code Online (Sandbox Code Playgroud)

VS

for(int i=0; i<something.size(); ++i)      
Run Code Online (Sandbox Code Playgroud)

..

jua*_*nza 5

假设两个样本的语法正确版本,如果调用something.size()昂贵,则第一个样本可能更有效,因为它为每个循环迭代保存一个调用.即便如此,你应该衡量它是否确实有所作为.

请注意,如果something要在循环内部更改大小,则两者将具有不同的语义.