《C++ Primer 4th》学习笔记(持续更新)

来源:互联网 发布:用友js面试题 编辑:程序博客网 时间:2024/04/25 00:01

     《C++ Primer 4th》终于全新出炉了。这本大师级的作品堪称是C++语言的学习经典用书。在我初学C++这门语言的时候用的就是这本书的第三版(潘爱民教授所译),真是受益匪浅,为我的C++之路打下了坚实的基础。现在第四版出来了,我还是又买了一本,发现完全重写了,不得不对大师Lippman产生崇敬之情。

        最近,我就在拜读此书,还是受益颇丰。有些东东一直在用,但并不知道为什么;有些则完全是错误的,至少是不合理的。在此我想把我的体会写下来,也许对大家有所帮助,也许只是无稽之谈,大家就看着办吧。


1.  double float 的取舍

       以前我一直以为能用float就尽量用float,因为他精度低计算速度快,但有时float中隐含的精度损失对程序可能是致命的,更不幸的是,这很难被察觉。

        Lippman在书中已明确建议在可以使用float的情况下也使用double,因为double的精度代价相比float可能出错而带来的麻烦可以完全忽略,而且在有些机器doublefloat比计算要快得多。


2.  标准库中 vector size_type 类型

        现在才惊讶的发现原来vector的成员函数size( )的返回值并不是int类型的。下图截自SGI STL(支持标准C++的最好版本)。

        之所以要定义这个配套类型,原因有二:一是使苦类型的使用能与机器无关(如有时机器的不同,int类型所占的字节数是不定的2B或4B);二是可以保证足够大能存储任意vector对象的长度,避免了溢出和负数的可能,使程序更为健壮。


3.  C标准库头文件的C++版本

        原来在C标准库的头文件将加个字母c,再去掉.h就是所谓的C++版本的C标准库头文件。在用C++编程时尽量使用C++版本的C标准库头文件,这样能使标准库中的名字在命名空间std中保持一致,减少不必要的命名冲突而带来的麻烦。

原创粉丝点击