条款50:让你自己熟悉有关stl的网站
sgi stl网站,http://www.sgi.com/tech/stl/. stlport网站,http://www.stlport.org/. boost网站,http://www.boost.org/.(译注:如果访问不了,可以试试http://boost.sourceforge.net/)下面是为什么这些网站值得收藏的简要描述. 【程序编程相关:初学linux笔记:samba】
因特网充满了stl的信息.用你最喜欢的搜索引擎寻找“stl”,它一定会返回几百个链接,其中有一些可能实际上是相关的.不过,对于大多数stl程序员,没有必要搜寻.下列网站应该要提升到几乎每个人的最常使用列表的顶端: 【推荐阅读:数据压缩技术简史】
sgi的stl网站名列前茅,而且有很好的理由.它对stl的每个组件提供了全面的文档.对于很多程序员,不管他们使用的是哪个stl 平台,这个网站都是他们的在线参考手册.(参考文档由matt austern编制,后来把它扩充并精炼为«generic programming and the stl»[4].)这里的材料不仅包括了stl的组件本身.例如,«effective stl»里关于容器线程安全的讨论(参见条款12)就是基于sgi stl网站上的一个主题. 【扩展信息:调整Win XP注册表 享受极速上网】
sgi stl网站
sgi网站为stl程序员提供了其它东西:一个可以自由下载的stl实现.这个实现只被移植到少数编译器,但广泛移植的stlport分发也是基于sgi分发的,我马上要写更多关于stlport的东西.此外,stl的sgi实现提供了可以让stl编程更强大.更灵活而且更有趣的许多非标准组件.其中最著名的是这些:
散列关联容器hash_set.hash_multiset.hash_map与hash_multimap.关于这些容器的更多信息,转向条款25. 单链表容器,slist.正如你所想的那样实现,而且迭代器指向你期望它们指向的列表节点.不幸的是,这使实现insert与erase成员函数变得昂贵,因为两者都要求调整迭代器指向的节点前一个节点的next指针.在双向链表里(比如标准list容器),这不是问题,但在单链表里,“后退”一个节点是线性时间的操作.对于sgi的slist,insert与erase花费线性而不是常数时间,这是一个相当大的缺点.sgi通过非标准(但常数时间)成员函数insert_after与erase_after解决这个问题.sgi注解到,如果你发现insert_after与erase_after不能满足你的需要,而且你经常需要在列表中间使用insert与erase,你或许应该使用list来代替slist.
dinkumware也提供了一个叫做slist的单链表容器,但是它使用了一个保持线性时间性能的insert与erase的不同迭代器实现.关于dinkumware的更多信息,参考附录b.
用于超长字符串的类似字符串的容器.... 下一页