You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环条件中调用vector的size()方法是否会每次迭代都计算大小?

关于vector::size()在循环中的执行次数与时间复杂度
  • 执行次数:在代码for(int i=1;i<=arr.size();i++)里,arr.size()每次循环迭代都会被执行。循环的条件判断环节会在每一轮迭代开始前重新求值,编译器不会自动把这个结果缓存下来。如果想避免重复调用,你可以手动把size的结果存到变量里,比如写成:

    int n = arr.size();
    for(int i=1;i<=n;i++)
    
  • 时间复杂度:对于标准的std::vector(如果你的自定义vector遵循标准实现逻辑),size()的时间复杂度是O(1)。因为vector内部会直接维护一个记录元素总数的变量,调用size()只是直接返回这个变量的值,不需要遍历容器去计数。

内容的提问来源于stack exchange,提问作者AKSHAY RAM S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:32:42