"我"的意思,为什么在那里?

'i' meaning and why is it there?

本文关键字:在那里 为什么 意思      更新时间:2023-10-16

我在这里也是新来的编码。最近,我一直在使用C 进行原则和练习,在他的代码中,总有一个i插入了他的示例中。有些在"向量的下标"函数内部,或者内部"语句"中的内部,例如int i.,但他甚至没有制作一个称为i的INT,它就在那里。也许我在阅读时错过了一些东西,我不知道,但我希望有人不会介意给我一个含义,即为什么它插入它放置的地方,或者只是i的含义。


下面我以第148页的方式以他的一个例子向您展示

int main()
{
    vector<double> temps; //temperatures
    double temp = 0;
    double sum = 0;
    double high_temp = 0;
    double low_temp = 0;
    while (cin>>temp) // read and put into temps
        temps.push_back(temp) ;
    for (int i = 0; i<temps.size(); ++i) // these 'i's
    {
        if(temps[i] > high_temp) high_temp = temps[i]; // and these
        if(temps[i] < low_temp) low_temp = temps[i];
        sum += temps[i]; // compute sum
    }
    cout << " High temperature: " << high_temp<< endl; // find high
    cout << " Low temperature: " << low_temp << endl; // find low
    cout << "Average temperature: " << sum/temps.size() << endl;
}

编写软件程序时,您声明的每个变量都必须具有含义,必须代表某些内容。

您刚刚阅读的书片段中也是如此,只是我们在谈论数组。如您所知,数组是相同值类型的值的集合。因为它是 Collection ,这意味着该数组中有1 或更多值。

这就提出了一个问题:如果有1个矿石,我该如何访问该数组的一个特定值?这是您阅读的i的位置。

变量 i具有的含义,我现在正在处理的数组的位置,"处理"可以读取,写作等。因为 i是一个变量,必须具有数据类型,因此int i表示法。

在此上下文中使用i作为变量不是强制性的,但这是一种非常普遍的做法。例如,如果您有矩阵,则需要两个这样的变量(一个用于行,一个用于列),很可能是ij

这也解释了为什么我们在for循环中使用i。用英语,这意味着循环与具有系数数量从0到数组大小的元素一起使用。

ifor环中被声明为int类型,但也可以在该循环之前声明。类似:

int i=0;
...
for (i=0; i<...)

i被声明为类型int的变量,此处:

for (int i = 0; .......)
{
   // 'i' used here
}
// 'i' cannot be used here

i仅在循环中具有一个范围。循环终止之后,该变量i的寿命也是如此。

i是约定的一部分,它代表 iteration number

它已在for循环中定义:

for (int i = 0 ....

基本上指出您从迭代编号零开始。一旦获得一些经验,您会发现迭代并不总是从零开始,因此i可以用不同的值初始化(或可以使用其他变量名称而不是i)。

数学上,i通常用于列表/数组的上下文:the ith elementsummation from i=0 to i=n等。

i是一个整数,用作i NDEXING变量。您经常在循环中看到它。

首先,让我们考虑一个向量及其外观。向量是一个可变长度阵列。

所以,如果我们有一个名为myVectorvector,则有5个元素,那么我们的某些看起来像

myVector:   item1    item2    item3    item4    item5

现在我们如何指定单个项目?我们需要为每个项目索引。传统上(来自数学),索引从0开始。因此,要索引第一个元素,我们进行myVector[0]。要索引第二个元素,我们进行myVector[1],依此类推。([]被称为 sisscript 运算符。您也可以使用myVector.at(0)myVector.at(1),但这较少使用。)

现在,如果我们想在向量中找到最小值或最大值怎么办?我们需要检查每个项目并进行比较。因此,我们需要迭代(循环)通过整个数组

我们该怎么做?我们如何通过迭代每个每个项目?要循环浏览每个项目,我们需要一些东西来指定项目。要循环循环每个项目,我们需要一个循环。

代码中的循环从0到数组/向量的长度迭代。

for (int i = 0; i < temps.size(); ++i)   // iterate through EVERY element of the vector
{
    //  access EACH element of using temps[i]
}