标签: loop-counter

我什么时候应该使用std :: size_t?

我只是想知道我应该使用std::size_tfor循环和东西而不是int?例如:

#include <cstdint>

int main()
{
    for (std::size_t i = 0; i < 10; ++i) {
        // std::size_t OK here? Or should I use, say, unsigned int instead?
    }
}
Run Code Online (Sandbox Code Playgroud)

一般来说,何时使用的最佳做法是什么std::size_t

c++ types idiomatic size-t loop-counter

187
推荐指数
9
解决办法
9万
查看次数

我是否应该看到`for`循环中的计数器在其体内发生了变化?

我正在读别人的代码,他们分别在循环内增加for循环计数器,以及包括通常的事后想法.例如:

for( int y = 4; y < 12; y++ ) {
    // blah
    if( var < othervar ) {
        y++;
    }
    // blah
}
Run Code Online (Sandbox Code Playgroud)

根据其他人编写和阅读的大部分代码,我应该期待看到这个吗?

language-agnostic for-loop loop-counter

16
推荐指数
4
解决办法
1656
查看次数

为什么Pascal禁止修改for block中的计数器?

是因为Pascal被设计成是这样,还是有任何权衡?

或者禁止或禁止修改for-block中的计数器有什么优缺点?恕我直言,没有什么用于修改for-block内的计数器.

编辑:
你能提供一个我们需要修改for-block内的计数器的例子吗?

这是很难 wallyk答案,并cartoonfox的答案之间作出选择,因为两者的答案是如此nice.Cartoonfox分析,从语言方面的问题,同时wallyk分析,从历史和现实世界aspect.Anyway的问题,所有的答案的感谢我要特别感谢wallyk.

pascal for-loop loop-counter

7
推荐指数
3
解决办法
2319
查看次数

谁"发明"了i,j,k作为整数计数器变量名?

可能重复:
为什么我们在循环中使用i作为计数器

我已经使用了这些超过15年,但不能真正记住我是如何/在哪里养成这种习惯的.由于它真的很普遍,我很想知道谁最初建议/推荐使用这些名称作为整数循环计数器(是K&R书吗?).

naming-conventions loop-counter

4
推荐指数
2
解决办法
6610
查看次数

使用浮点变量作为循环计数器的风险和非"=="条件的小数增量/减量的风险?

我们可以安全地使用浮点数作为循环计数器,并在每次迭代时按小数量递增/递减它们,就像下面看似无风险的程序一样吗?​​当然我知道使用浮点数作为==运算符的操作数是愚蠢的要做的事情.但是为了"正常"目的使用浮动作为其他比较操作的操作数有什么问题?通过"正常",我的意思是,即使浮点数可能不是数字的精确数字表示,但是不是0.000000001无关的变化,在大多数情况下可以忽略吗?(例如,在以下程序中甚至不明显)

但是说,这就是我的理解.假设表示不精确,5.0实际上是4.999999.因此,当我们在每次迭代时继续递减0.5时,与0的最后一次比较可能会变为假,并且循环可能会因为相差0.000001,不显示当前输出的最后一行.我希望你能得到我的漂移.我怎么了?

#include<stdio.h>

int main(void)
{
float f;

for(f=5.0;f>=0;f-=0.5)
printf("%f\n",f);
}
Run Code Online (Sandbox Code Playgroud)

输出:

5.000000
4.500000
4.000000
3.500000
3.000000
2.500000
2.000000
1.500000
1.000000
0.500000
0.000000
Run Code Online (Sandbox Code Playgroud)

c floating-point loops loop-counter floating-point-precision

4
推荐指数
3
解决办法
1万
查看次数