泛型编程在 C++ 语言 FOR 循环中的体现

在没有系统学习 C++ 语言之前,LT 习惯上这样使用 FOR 循环,比如 10次循环,一般习惯这样写:

for(int i=0; i<10; i++){
}

但是在阅读了《C++ Primer》后,判断语句,作者建议使用 != 来替代 < ,作者写到 “习惯于C或Java编程的C++程序员可能会觉得难以理解,for循环的判断条件用!=而不是用<来测试vector下标值是否越界。C程序员难以理解的还有,上例中没有在for循环之前就调用size成员函数并保存其返回的值,而是在for语句头中调用size成员函数。C++程序员习惯于优先选用!=而不是<来编写循环判断条件。”所以上述代码还可以写成这样

for(int i=0; i!=10; ++i){
}

这就设计到泛型编程的理念,在上例中对象类型 i 是整型,其操作符定义中含有 < 。但是如果是其他类型的对象,如某些迭代器 Iterator ,其操作符不一定定义有 < ,但是基本上都有 != 的定义。这个就是作者建议的原因,这个也是 C++ 语言中的特色。

下面是 Kindle 上对解释的截图:

C++ Primer Generic Programming作者在 《C++ Primer》 第四版此处没有过多解释,但是在第五版此处做了解释,LT 近来在 Kindle 上读第五版的英文版,突然看到,恍然大悟,于是笔记而备忘。

扩展阅读:

关键字:泛型编程, Generic Programming

Leave a Reply

Your email address will not be published. Required fields are marked *