'i' 意思是什么?
'i' meaning and why is it there?
我也是编码方面的新手。最近我一直在研究 使用 C++ 的原理和实践 ,在他的代码中总是有一个 i
插入到他的示例中。有的在"vector's subscript"函数里面,有的在"for statements"里面,比如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;
}
i
声明为int
类型的变量,这里:
for (int i = 0; .......)
{
// 'i' used here
}
// 'i' cannot be used here
i
仅在 for 循环内有作用域。循环终止后,该变量的生命周期也会终止 i
.
i
是约定的一部分,代表 iteration number
.
已在for
循环中定义:
for (int i = 0 ....
这基本上表明您是从第 0 次迭代开始的。一旦你获得了一些经验,你就会发现迭代并不总是从零开始,所以 i
可能会用不同的值初始化(或者可能使用不同的变量名而不是 i
完全) .
在数学上,i
通常用于 list/array 的上下文中:the ith element
或 summation from i=0 to i=n
等
i
是一个整数,用作 i
索引变量。你经常在循环中看到它。
首先,让我们考虑一下矢量及其外观。矢量是可变长度数组。
因此,如果我们有一个名为 myVector
的 vector
,其中包含 5 个元素,那么我们就会得到类似
的东西
myVector: item1 item2 item3 item4 item5
现在我们如何指定个别项目?我们需要为每个项目编制索引。传统上(从数学上),索引从 0 开始。所以要索引第一个元素,我们做 myVector[0]
。为了索引第二个元素,我们做 myVector[1]
,依此类推。 ([]
被称为 下标 运算符。您还可以使用 myVector.at(0)
、myVector.at(1)
,但这种使用较少。)
现在如果我们想找到向量中的最小值或最大值怎么办?我们需要检查每个项目并进行比较。所以我们需要迭代(循环)整个数组。
我们如何做到这一点?我们如何遍历 each 和 every 项目?要遍历 each 项目,我们需要一些东西来指定项目。要遍历每个项,我们需要一个循环。
代码中的循环执行此操作,从 0 迭代到 array/vector 的长度。
for (int i = 0; i < temps.size(); ++i) // iterate through EVERY element of the vector
{
// access EACH element of using temps[i]
}
当你编写软件程序时,你声明的每个变量都必须有一个含义,必须代表一些东西。
你刚刚看的那本书片段也是这样,只不过我们说的是数组。如您所知,数组是相同值类型的值的集合。因为它是一个 集合 ,这意味着该数组中有 1 个 或更多 个值。
这提出了一个问题:如果有 1 个或多个值,我怎样才能访问该数组的一个特定值?这是您阅读的 i
进来了。
变量i
的含义是我现在正在处理的数组的位置,其中"working on"可以表示读取,写入,等。因为 i
是一个变量,它必须有一个数据类型,因此 int i
表示法。
在此上下文中使用 i
作为变量不是强制性的,但这是一种非常常见的做法。例如,如果您有一个矩阵,您将需要两个这样的变量(一个用于行,一个用于列),它们很可能是 i
和 j
.
这也解释了为什么我们在 for
循环中使用 i
。在英语中,这意味着循环使用系数从 0 到数组大小的元素。
i
在 for
循环中被声明为 int
类型,但它也可以在该循环之前声明。类似于:
int i=0;
...
for (i=0; i<...)
我也是编码方面的新手。最近我一直在研究 使用 C++ 的原理和实践 ,在他的代码中总是有一个 i
插入到他的示例中。有的在"vector's subscript"函数里面,有的在"for statements"里面,比如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;
}
i
声明为int
类型的变量,这里:
for (int i = 0; .......)
{
// 'i' used here
}
// 'i' cannot be used here
i
仅在 for 循环内有作用域。循环终止后,该变量的生命周期也会终止 i
.
i
是约定的一部分,代表 iteration number
.
已在for
循环中定义:
for (int i = 0 ....
这基本上表明您是从第 0 次迭代开始的。一旦你获得了一些经验,你就会发现迭代并不总是从零开始,所以 i
可能会用不同的值初始化(或者可能使用不同的变量名而不是 i
完全) .
在数学上,i
通常用于 list/array 的上下文中:the ith element
或 summation from i=0 to i=n
等
i
是一个整数,用作 i
索引变量。你经常在循环中看到它。
首先,让我们考虑一下矢量及其外观。矢量是可变长度数组。
因此,如果我们有一个名为 myVector
的 vector
,其中包含 5 个元素,那么我们就会得到类似
myVector: item1 item2 item3 item4 item5
现在我们如何指定个别项目?我们需要为每个项目编制索引。传统上(从数学上),索引从 0 开始。所以要索引第一个元素,我们做 myVector[0]
。为了索引第二个元素,我们做 myVector[1]
,依此类推。 ([]
被称为 下标 运算符。您还可以使用 myVector.at(0)
、myVector.at(1)
,但这种使用较少。)
现在如果我们想找到向量中的最小值或最大值怎么办?我们需要检查每个项目并进行比较。所以我们需要迭代(循环)整个数组。
我们如何做到这一点?我们如何遍历 each 和 every 项目?要遍历 each 项目,我们需要一些东西来指定项目。要遍历每个项,我们需要一个循环。
代码中的循环执行此操作,从 0 迭代到 array/vector 的长度。
for (int i = 0; i < temps.size(); ++i) // iterate through EVERY element of the vector
{
// access EACH element of using temps[i]
}
当你编写软件程序时,你声明的每个变量都必须有一个含义,必须代表一些东西。
你刚刚看的那本书片段也是这样,只不过我们说的是数组。如您所知,数组是相同值类型的值的集合。因为它是一个 集合 ,这意味着该数组中有 1 个 或更多 个值。
这提出了一个问题:如果有 1 个或多个值,我怎样才能访问该数组的一个特定值?这是您阅读的 i
进来了。
变量i
的含义是我现在正在处理的数组的位置,其中"working on"可以表示读取,写入,等。因为 i
是一个变量,它必须有一个数据类型,因此 int i
表示法。
在此上下文中使用 i
作为变量不是强制性的,但这是一种非常常见的做法。例如,如果您有一个矩阵,您将需要两个这样的变量(一个用于行,一个用于列),它们很可能是 i
和 j
.
这也解释了为什么我们在 for
循环中使用 i
。在英语中,这意味着循环使用系数从 0 到数组大小的元素。
i
在 for
循环中被声明为 int
类型,但它也可以在该循环之前声明。类似于:
int i=0;
...
for (i=0; i<...)