作为一个优秀的程序员要做到对基本数据结构和算法烂熟于胸,这是n年前云峰在<<我的编程感悟>>里面说的话。现在仔细想想的确很有道理,现在游戏产品越来越多,竞争越来越激烈,程序员们可能也很少自己实现一套基本的数据结构和算法而直接用stl,这里面的原因很多,自己实现一套往往效率不高而且也没有足够的时间。实际上stl的效率也不见得就很高。通过测试发现stl里除了std::vector的效率比较高,其他的容器效率都一般般。例如std::set的效率就要比std::vector的效率要低,这和容器本身的数据结构和内存分配有关系.
基本的数据结构有链表,树,字符串,有人总认为这个很简单。诸不知,linux内核的list源码真是精益求精,一个双向循环链表都有这么多东西值得我们学习,所有程序精髓最后都要归结到最基本数据结构和算法了。有了良好的基础,高层也只是基本东西的扩展。不积硅步无以至千里。不积小流无以至大海说的就是这个道理。