技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 发现 --> 小趣闻:STL的三个版本

小趣闻:STL的三个版本

浏览:2876次  出处信息

    STL比较出名的有如下三个:

    一个是SGI STL。STL之父离开HP之后就去了SGI(当然不是去搞侏罗纪公园),然后和Matt Austern这些STL大牛一起搞了SGI STL。SGI STL技术比较新,很规范(但是代码读起来未必好懂) 像concept checking这些技术用的不少,boost graph library的想法也是在这其中产生的。后来有人觉得sgi stl很好,兼容性不够(其实现在已经很不错了),就弄了个stlport项目,顺便提供咨询服务赚点小钱。

    一个是RougeWave STL,是Borland C++ Builder 5.0及以前版本采用的STL实现(6.0以后改用stlport)。RougeWave公司在C++程序库领域应该说是鼎鼎大名,在C++标准化过程中出力甚多(比如IOStream)。不过这个STL版本似乎老了点,更新不太勤快,关键是贵(RougeWave 的东西一向如此),所以被Borland一脚踢了。

    一个是Visual C++里的STL,作者P.J. Plauger,所以一般也说pj stl。其实这份STL是他公司的产品(他这个公司一共也就3个人,所以人均GDP一定很高),不过他跟MS的关系实在是好得有点古怪,所以虽然Plauger水平极高,很多人却看他不惯。当然,据说Plauger除了钱以外也看不惯其他东西,所以Plauger虽然称不上声名狼藉,也没有什么好名声。因为VC 6.0在模板处理方面过于白痴(7.0/7.1以后就没事了,毕竟Lippman出马),所以pj stl实在写得辛苦,也难为Plauger了(当然有money作动力,恐怕也无所谓“难为”)。

    三份STL,sgi stl应该说是中规中矩,rougewave没 什么好印象,pj stl效率好。说到符合标准的程度,都不怎么样。sgi stl 的allocator是比较特别的,另外在windows下的stlport对wchar_t和locale这些支持极烂。rougewave stl和pj stl对wchar_t支持还行,但是locale支持部分偶尔有些小bug,乱跳异常。 sgi stl和pj stl都实现了hash这些非标准组件(反正肯定会是标准的),但是接口不同。据说标准委员会更偏向pj stl的。另外sgi stl是彻底的free,但是pj stl不是。如果你跟Plauger多些money,他会给你几百个allocator,一堆你用不完的好东西,什么内存池、持久化都不在话下。有钱还是能让他推推磨的。

建议继续学习:

  1. 关于使用STL的红黑树map还是hashmap的问题    (阅读:7941)
  2. 萃取(traits)编程技术的介绍和应用    (阅读:5031)
  3. 一个简单的stl中string的split函数    (阅读:3263)
  4. STL笔记之二叉查找树    (阅读:3058)
  5. STL笔记之hashtable    (阅读:2632)
  6. 倒置字符串中的单词    (阅读:2472)
  7. 闲谈STL容器之size()成员函数    (阅读:2366)
  8. STL可能的误用-find_first_of和erase    (阅读:2036)
  9. 不得不留意的STL string重载函数和隐式类型转换    (阅读:1391)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
  • 作者:Dante    来源: Vimer
  • 标签: STL
  • 发布时间:2009-11-26 22:17:33
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1