"我"的意思,为什么在那里?
'i' meaning and why is it there?
我在这里也是新来的编码。最近,我一直在使用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
作为变量不是强制性的,但这是一种非常普遍的做法。例如,如果您有矩阵,则需要两个这样的变量(一个用于行,一个用于列),很可能是i
和j
。
这也解释了为什么我们在for
循环中使用i
。用英语,这意味着循环与具有系数数量从0到数组大小的元素一起使用。
i
在for
环中被声明为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 element
或summation from i=0 to i=n
等。
i
是一个整数,用作i
NDEXING变量。您经常在循环中看到它。
首先,让我们考虑一个向量及其外观。向量是一个可变长度阵列。
所以,如果我们有一个名为myVector
的vector
,则有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]
}
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- scanf( "%d" , array[i] + 1)是什么意思?为什么+1在那里?
- C++ csv 文件无法正确加载到矢量,它似乎知道对象在那里但不显示它们
- 是否可以将多个结构作为一个数据包存储在一个函数中,然后传递给其他函数并在那里提取?
- Fread C++ in C#.我知道我需要字节缓冲区,但并不完全在那里
- 链接 openGL 库失败,因为它无法打开 libgl.so ...但它就在那里
- C++:使用数组、指针和 for 循环制作直方图。我就在那里,我可能想得太辛苦了
- C 是否具有接口类概念,如果它在那里,那么它与Java接口类别有何不同
- 为什么静态必须在那里
- "我"的意思,为什么在那里?
- 班级"Oscar"可能在那里做什么?
- 为什么"ostream & os"必须在那里C++操作员过载?
- 田野不能被重新爱,虽然它显然在那里!(实现地图.h)
- 定义一个全局变量并在那里初始化它本身可以吗?
- 找不到命名空间,尽管它就在那里
- C:主要未找到,但它在那里 |编译错误
- "missing return statement",但我知道它在那里
- 我的程序显示空的表面,它需要在那里显示地图
- 'ld:找不到建筑???符号",即使它在那里
- 奇怪的链接错误。找不到符号,尽管 nm 验证它在那里