Effective STL 读书总结

Effective STL 中文版 潘爱民 陈铭 邹开红 译)

这里是看书过程做的读书笔记(点击打开链接),花了不少功夫写的,对每个条款做了一个概括性的描述。看这本书之前最好是对STL的基本的操作熟悉,如果你从没有用过STL编程,或者甚至完全没有听过STL,那么还是先找一本C++ Primer(我看的是C++ Primer Plus)之类的入门书籍好好看一看吧。


看这本书我用STL也有一段时间了,自以为用的还不错,起码在做算法题的时候用STL还是挺顺手的,不过当我看了这书前几条的时候我就发现自己对STL的了解太肤浅了,以前用的最多是都是vector, list, set, map容器和sort之类的操作,可以说主要是使用STL中提供的方便的数据结构。而对于transform这样强大的算法基本没有用过,对于迭代器也只知道迭代是iterator,操作起来跟指针差不多,对于其实现原理完全不了解。对于函数对象、函数子这样概念也不清楚,只知道是这样用。可以说在看这本书之前我对于STL完全可以说是门外汉!


看完之后收获是巨大的,完全被作者那些精妙的STL操作折服,每次看到一个新功能,我就感叹原来这玩意还可以这样用,最让我惊奇是istream_iterator,没想到一个迭代器就把istream和STL联系起来了,以后如果读取数据文件直接使用istream_iterator,那真是方便快捷。迭代器(iterator)真是个了不起的构想,使用迭代器统一了对STL的各种操作,迭代器也是STL中非常非常重要的一个概念,如果你也不知道什么是迭代器的话,那么建议你好好看一看Effective STL,全书不过200页唯一不足的就是我实在想不到它为什么叫迭代器,第一次听到这名字时完全不知道是个啥东西,觉得有必要取个更好的名字!


除了各种容器的头文件之外,下面 几个头件中的玩意都非常强大,也是STL非常重要的组成部分,没事经常查看一下,说不定你能发现对你正在编写的程序非常有的工具。

<algorithm>:各种算法模板,针对容器,参数一般为迭代器,非常强大。

:迭代器。提供各种类型的迭代器定义,我觉得比较有用的inserter型的迭代器,配合copy使用很方便。

:函数子。像那种两数比较大小啊,两数相乘啊之类的函数以后就不要自己写,这里都有,而且都是模板函数,强大无比。而且还提供了bind绑定器,使用STL编程,你有必要了解它。


另外书中多次提到The C++ Standard Library : A Tutorial and Reference一书。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部