我的问题是关于时间优化。
通过执行以下操作,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/