泛型编程在 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 上对解释的截图:

Continue reading

机器人工程师的非机器人编程技能

自从接触到KUKA机器人以来,更多关注到了PC层面上的编程。工业现场多是采用快速更换的PLC系统硬件,这些将会注重在现场离散信号控制方面;而PC层面的编程更多会注重在数据传输、显示、存储方面的运用。那么,有什么编程技术值得储备呢?

Continue reading

关于 Bits Tool V1 的一些细节

在很早之前,Bits Tool V1 已经有了雏形,可以完成基本的二进制和十六进制之间的转换以及 bit 位的显示和选取功能,不过十进制转换的功能一直没有加进去。上周末,参考了网上的算法,将十进制和二进制转换功能加了进去。展现层面使用的是 MFC ,实现层面用的是 C++,LT 遇到了一些细节,记录下来思路,以备忘。

Continue reading