请问学STL有用吗?有什么书详细的讲STL?

freebeekf 2000-12-16 11:46:00
近来看了候捷先生的一些文章,知道了STL,对我简直是个震动,
看遍了图书馆也没有相关的书籍,不知是什么原因。

现在想找STL的书,不过不知学STL是否象候捷先生说的那样有用。
...全文
1089 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
marmoset 2001-11-16
  • 打赏
  • 举报
回复
to cber,
关于效率的评价,有没有比较全面又比较简单的检验方法(当然是相对来说),
比如生成一个大vector,再作某些copy,assignment,insert之类的操作就能比较客观的比较出两个版本的效率差异?
我的意思是说,在效率的层面上,应该依据哪些因素作为评价的(主要)依据?
是否能设计出比较客观的实验(也许已经有了),进行相对应的比较?
比如以前有人说VC的deque效率不高,那么他们是根据什么得出这样的结果呢?
非常感谢。
cber 2001-11-16
  • 打赏
  • 举报
回复
to marmoset:
VC中的allocator中用到了很多不标准的做法,使得它的效率比其他的STL要高。
VC对于STL的支持不好,关键在于它的编译器对于ANSI C++ Standard支持的不好,尤其是模板这方面,而STL主要又是基于ANSI中的许多模板特性上面,因此才会说VC对于STL支持不好。其实VC中的STL特性已经足够一般的使用了。
marmoset 2001-11-16
  • 打赏
  • 举报
回复
to cber
请问为什么VC下的STL效率最高?以前不是说VC对STL的支持并不好吗?如果有相关的文章,可否介绍一下?

而且好像VC版本STL的内存分配用的是new,而SGI版本用的是malloc,后者的速度应该更快才对呀???
rami 2001-11-16
  • 打赏
  • 举报
回复
STL是站在高层看问题。我们应该结合编程实践来体会STL带来的博大思想和好处。
linghuye 2001-11-16
  • 打赏
  • 举报
回复
STL真他妈的是个好东西,我的生活又有了奔头。
北京国家图书馆第一外文阅览室有几本经典著作,爽!
cber 2001-11-15
  • 打赏
  • 举报
回复
据评测,VC中的STL效率其实是最高的(这是myan在一封email中告诉我的,我还没有去读那篇评测文章)。不过由于VC中对于ANSI C++中的模板支持的太差,所以VC的STL用起来也不标准,感觉很怪,有很多的特性支持的不是很好。
softarts 2001-11-15
  • 打赏
  • 举报
回复
那STL到底有什么地方比MFC的集合类做得好的,请用事实说明一下
我不是很清楚,只是看到大家都这么说。
还有,VC中的STL实现效率到底有多低?原文出处在哪里?谁能证明一下?
谢谢!!
cber 2001-05-18
  • 打赏
  • 举报
回复
GP <> OOP
它们是两种不同的paradigms,个人认为以后GP的应用将会越来越广泛,估计以后的Design Patterns都将会完全的Generic,而我们只需要将Object包装一下使之符合GP的要求就行了:)
qqchen79 2001-05-17
  • 打赏
  • 举报
回复
GP是指设计对各种类型通用的类和方法。与经典的OOP相比,GP不仅需要考虑接口和实现的分离,而且需要对具体实现及其效率加一考虑(无论对那种类型,stack的进栈出栈动作都应该指需要常数时间O(1))。
C++中的GP的方法就是模版(template),而STL则是GP编程的一个典范(它几乎包含了所有GP应用的经典问题)。与此相比,STL中对OOP的继承和多态的应用就非常之有限,甚至在一些细节的问题上违反了OOP的原则!
学会STL我认为是C++程序员的必修课,auto_ptr(C++标准库的一部分)和container的使用基本可以避免与底层的指针混战的经历——避开指针而又不用花费GC的代价,java程序员是无福消受的。
java/C#中对GP支持的缺乏,只能使他们更是用于教学应用,鼓吹所谓真正的纯OOP :-)
学习STL的另一个附带的好处是Design Pattern的实践,Iterator是经典的Pattern,另外像Traits也被用绝了!还有Adapter等等等等。
emerald 2001-05-17
  • 打赏
  • 举报
回复
多谢多谢,以后多请教,
不过在程序员提到了generic java,
GP的路越来越广了
emerald 2001-05-16
  • 打赏
  • 举报
回复
知秋一叶很有研究啊,stl不是Generic Programming的唯一方法,
你能帮忙告诉我其他还有什么方法么?
qqchen79 2001-05-16
  • 打赏
  • 举报
回复
STL无论是从实用还是思想都值得学习。
但由于MS有意无意的忽略,导致VC中STL效率不好,而且MSDN中介绍也很少!
基本没有比较好的中文资料,学STL要看E文的了!

另外,STL应该是Generic Programming的典范,GP是否归于OOP当中,现在还没有定论。
vcmfc 2001-05-15
  • 打赏
  • 举报
回复
不学习STL,完全可以学懂ATL,只不过ATL中的有一小部分需要你懂一点STL。
chiefen 2001-05-15
  • 打赏
  • 举报
回复
to :freebeekf(潦潦草草)
不学stl ,能学懂atl吗?
yeka 2001-05-15
  • 打赏
  • 举报
回复
我们社今年会出版一批STL方面的经典著作,有侯捷先生翻译的,也有侯捷先生写作的,大约4、5本的样子。(华中科技大学出版社)
tianlon 2001-05-15
  • 打赏
  • 举报
回复
ATL与STL有何异同?
vcmfc 2001-02-05
  • 打赏
  • 举报
回复
俺就是专门利用春节期间来恶补一番!
ahao 2001-02-03
  • 打赏
  • 举报
回复
学了STL,才能体会面向对象软件开发的精髓
这么好的东西竟然有人说是...呵...
vcmfc 2001-02-03
  • 打赏
  • 举报
回复
同意!
freebeekf 2001-02-02
  • 打赏
  • 举报
回复
我觉得全国都乃井底之蛙,本应流行的东东,在中国就被打入了冷宫,连本书都找不到。。。。。。
加载更多回复(18)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧