gpt4 book ai didi

c++ - 调用 vector.size() 完成了多少工作?

转载 作者:太空狗 更新时间:2023-10-29 23:31:09 26 4
gpt4 key购买 nike

它是一个简单的getter吗?还是每次都计算?

如果我有这样一个 for 循环:

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

我只需要使用一次大小,在循环之前计算一次并将其存储在变量中会更好吗?或者 size() 只是一个简单的 getter,它不会有什么区别?

最佳答案

那是实现定义的。假设实现想要提供高效的标准库,两个最可能的实现是:

  • 用指向存储结束后一个的指针减去指向存储开始的指针,并返回该计算的结果。
  • 返回一个大小变量,该变量与 vector 中的每个操作保持同步。

在任何情况下,标准都要求复杂度保持不变,您不必为此担心。此外,编译器通常会进行足够的优化,以对您自己存储大小没有影响。

关于c++ - 调用 vector.size() 完成了多少工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757198/

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