版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/laoxuan2011/article/details/52718057
说明
C++编程有一些习以为常的惯用用法,认真思考会发现并不是无凭无据。
为什么从0开始计数
在C++程序中,大家经常可见从0开始计数而不是从1开始计数。
for(int i=0; i!=rows;++i){
...
}
如果从1开始的话,等价于:
for(int i=1; i<=rows;++i){
...
}
实际上这两种是等价,但是为什么习惯用第一种方式?
对称区间和不对称区间
第一种方式,其实是一个不对称区间[0 , rows)
。
第二种方式,其实是一个对称区间[1 , rows]
。
不对称区间可以直观简单地看出区间元素个数:不对称区间[m , rows)
的元素个数就是rows-m
,而对称区间[m , rows)
的元素个数就是rows-m+1
。
不对称区间很容易表示空区间:不对称区间[n , n)
表示空区间,而对称区间表示为[n , n-1]
,显然当程序中区间的末尾比开头小,那会产生很多麻烦。
最后一点是,使用
for(int i=0; i!=rows;++i){
...
}
使得循环更容易理解和表达,在上面代码从0开始计数,告诉我们到目前为止已经运行了r次,而条件是i!=rows
,这样在循环结束时候,我们更容易知道这时i=rows。