flyman

opengl world
随笔 - 10, 文章 - 0, 评论 - 65, 引用 - 0
数据加载中……

学习 STL ,BOOST

学习C++已经有一段时间了,但有时感觉自己写的代码完全是一个C版的,
所以现在想认真看看C++方面的编程典范。
环顾四周N人都在谈论STL BOOST,所以斗胆也想看看源码。
所以想征求一下各位的意见,我应该只看一个或是从他们中的一个开始。

由于还有其他的活,所以想找条最好的路,请各位不惜赐教。




posted on 2007-08-11 13:11 flyman 阅读(5054) 评论(18)  编辑 收藏 引用

评论

# re: 学习 STL ,BOOST  回复  更多评论   

按照你所说的“有时感觉自己写的代码完全是一个C版的”, 我想现在去读 STL或boost都不太适合, 如果你对模板技术感兴趣, 建议你先熟悉一下STL的使用(参考<<C++标准模板库>>), 然后再研究STL的源码(参考侯捷<<STL源码剖析>>), 我想说的是参考书是很重要的帮助, 如果自己一头撞进去,恐怕过程会很曲折, 甚至会中途放弃
2007-08-11 13:33 | SmartPtr

# re: 学习 STL ,BOOST[未登录]  回复  更多评论   

@SmartPtr
使用模板应该没有什么问题,我现在一直都在用。
看来我是到了 “然后再研究STL的源码(参考侯捷<<STL源码剖析>>)”
^_^。

现在就是不知道STL和BOOST的区别和联系,STL中注重根中结构类型功能接口的统一性,我在应用时也有此感受。不知道BOOST是否也遵从这样的原则,
由于我现在还没有接触过BOOST,所以现在不知道怎么决定。
2007-08-11 14:15 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

STL中注重<del>根中</del>结构类型功能接口的统一性
2007-08-11 14:17 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

其实我也没有研读过boost的源码, 因为相对于STL, 它太大了, 也更复杂,自己也曾下载想好好读读,但最后还是没有足够的时间与精力去看。 引用网上一段介绍:

boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都
是利用泛型让复用达到最大化。不过对比STL,boost更加实用。 STL集中在算法部
分,而boost包含了不少工具类,可以完成比较具体的工作。

boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法
、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相
关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项
。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。
2007-08-11 14:32 | SmartPtr

# re: 学习 STL ,BOOST  回复  更多评论   

学STL时,用了《STL程序员指南》那书真的是超级垃圾,不过还是让我了解了STL,BOOST方面不知有什么好书,BOOST确实很大,要通通研究一片得有充裕的时间、精力和英文阅读能力,不过BOOST库很实用。祝福LZ,我也只是学习者的态度。
2007-08-11 14:42 | pass86

# re: 学习 STL ,BOOST  回复  更多评论   

@SmartPtr
@pass86
多谢提供参考,我现在都是用STL,但由于编码规范问题,我想看看C++的精华
,:-),听说BOOST为精华中的精华,所以想通过大家了解一下,
我可能要用到BOOST的图形和数学方面的东西,到时候在看吧,好了,现在开始看STL(看来又得熬夜了,555)。《STL源码剖析》,SmartPtr推荐,应该不错。o(∩_∩)o。

BOOST,等用到的时候再讲,

flyman say:谢了!
2007-08-11 16:07 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

现在不推荐去读boost的源码。。。里面很多技巧的东西晦涩难懂,会让你感到模板是个变态的东西。。。估计C++0x出来后,用新标准重写后代码会好读很多。。。
2007-08-11 16:45 | yxxyun

# re: 学习 STL ,BOOST[未登录]  回复  更多评论   

@yxxyun
:-),希望C++0x在不减少灵活性的同时,用起来就像C#那样爽,
不过,这好像不怎么现实呀。
STL相对BOOST的确简单很多,现看看STL的确是个不错的选择。
2007-08-11 18:26 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

很难讲。虽然现有设计也许会好一点,比方说typeof和auto的支持,但是问题是一旦concept这样的东西被C++接收,不知道还会有什么惊天地泣鬼神的库,同时也不知道编译器还能慢成啥熊样。。。

ps,boost除了编译时间有些长,它的接口和功能设计都很出色。。。
2007-08-11 21:23 | 空明流转

# re: 学习 STL ,BOOST  回复  更多评论   

@空明流转
标准还在酝酿中,无论结果如何,其实感觉咱们只有接受的份(CHINA的专家,标准不参与,编译器更是谈不上了,还有啥好说的)。
话说会来,我还是希望标准能 简化CPP或使C++更易用,易用不等于简单

现在是骑驴没有标准看呀,^_^。
2007-08-11 22:50 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

兩本書推薦

侯捷的
C++設計新思維(Modern C++ Design)
C++ Template 全覽(C++ Template Complete Guide)

讓你馬上感受泛型的威力
2007-08-12 07:48 | 真 OO無雙

# re: 学习 STL ,BOOST[未登录]  回复  更多评论   

@真 OO無雙
第一本已经过了,侯先生的书不错,
C++ Template 全覽应该也不错,
3KS for your recommending.
2007-08-12 10:31 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

最近准备学习boost的使用,可能会写boost的使用笔记,希望跟大家共同学习,共同进步。。。
2007-08-13 09:25 | 梦在天涯

# re: 学习 STL ,BOOST[未登录]  回复  更多评论   

@梦在天涯
期待中。。。。
2007-08-13 09:45 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

会用才是实际的。不管是C还是C++,第一是实现功能,第二是简洁。不必在意是否用到STL,或是BOOST。更不要为了虚荣去阅读STL源代码。使用STL带来许多方便性,但是并不要求去剖析实现过程。
2007-08-13 09:48 | 金庆

# re: 学习 STL ,BOOST[未登录]  回复  更多评论   

@金庆
说的也是那个理,但我们不得不承认STL好用易上手。这种背后的根源是什么?
为源码而源码确实没有那个必要,但编码技巧从哪KISS呢?
2007-08-13 10:07 | flyman

# re: 学习 STL ,BOOST  回复  更多评论   

@flyman
我学习的时候,找编程竞赛题做,即Online Judge,可以在线编译与结果判断,很容易上瘾。
2007-08-13 10:26 | 金庆

# re: 学习 STL ,BOOST[未登录]  回复  更多评论   

@金庆
从来没有式过,上面有人发变成比赛的事,好像很好玩。

“我学习的时候,找编程竞赛题做”

^_^,我学习的时候,找习题做。
2007-08-13 10:39 | flyman

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理