gpt4 book ai didi

c++ - 每次迭代在 for 循环中计算 vector 大小是否昂贵?

转载 作者:IT老高 更新时间:2023-10-28 22:26:11 30 4
gpt4 key购买 nike

c++ 编译器是否处理诸如建筑物是 vector 之类的情况:

for (int i = 0; i < buildings.size(); i++) {}

也就是说,它是否注意到建筑物是否在循环中被修改,然后基于此不评估它每次迭代?或者也许我应该自己做这个,不是很漂亮但是:

int n = buildings.size();
for (int i = 0; i < n; i++) {}

最佳答案

buildings.size()可能会被编译器内联以直接访问 vector<T> 上的私有(private)大小字段类(class)。所以你不应该把对 size 的调用分开。 .这种微优化是您无论如何都不想担心的(除非您处于某个被分析识别为瓶颈的非常紧密的循环中)。

关于c++ - 每次迭代在 for 循环中计算 vector 大小是否昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945294/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com