明确给出该数字时,我应该参考std ::向量大小

Should I refer std::vector size when the number is explicitly given

本文关键字:std 参考 向量 我应该 数字      更新时间:2023-10-16

我正在使用下面使用std ::向量的简单函数进行编码,其中输入为整数向量,该函数根据向量中的元素数量进行迭代。

在空间和时间效率方面,以下代码合适?Hugeclass实际上是一个大整数,在我放置一个简单的算术时,它包含复杂的算术,以简单。

1)给出了向量的维度

void (HugeClass& huge, std::vector<int>& vec, int dim){
    for(int i=0;i<dim;i++){
        huge+=vec[i];
    }
}

2)将std :: vector.size()调用

void (HugeClass& huge, std::vector<int>& vec){
    for(int i=0;i<vec.size();i++){
        huge+=vec[i];
    }
}

DIM可以在[100,1000000]

中范围

c 中的循环的语法是:

for ( init; condition; increment ) {
   statement(s);
}

这是for循环中的控制流:

  1. 首先执行初始步骤,仅执行一次。此步骤使您可以声明并初始化任何循环控制变量。只要出现半隆。

  2. 接下来,评估条件。如果是真的,则循环的主体将执行。如果是错误的,则循环的主体不会执行和流动流在for循环之后跳到下一个语句。

  3. for循环执行后,控件的流量跳回增量语句。此语句允许您更新任何循环控制变量。只要条件之后出现半分析,就可以将此语句留为空白。

所以在

的情况下
for(int i=0;i<vec.size();i++) {
        huge+=vec[i];
}

vec.size()每次都调用,但可能是内衬的,并且可能是一个简单的功能。

上面

一个足够聪明的优化器可能能够推断出它是一个不变的循环,没有副作用并完全效果(如果代码是内衬的,这很容易,但是即使编译器确实可以进行全局,也可能不可能优化)