我的问题是关于时间优化。
通过执行以下操作,for循环是否更快:

std::vector<int> myVec = {0,1,2,3};
for(int i = 0; i < myVec.size(); i++){}


还是预先计算大小的最佳实践?

std::vector<int> myVec = {0,1,2,3};
int myVecSize = myVec.size();
for(int i = 0; i < myVecSize ; i++){}


我想知道的不仅是纯粹的时间执行,还想知道这是否会导致某些问题吗?

最佳答案

这一点都不重要。优化编译器会删除这两行或三行,它们什么也没做。

说真的如果编译器可以推断出容器是否未在循环中更改,则它将进行您手动进行的优化。为了帮助编译器应用优化,您甚至可以声明一个容器为常量(矢量示例):

const std::vector<int> myVec = {0,1,2,3};

关于c++ - 对于循环,在循环外检查 vector 的大小是否更快?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49595661/

10-12 14:24