注册 登录
编程论坛 C++教室

关于STL

ichigo 发布于 2007-06-29 20:55, 1032 次点击

想问问各位,在实际程序开发中遇到需要容器类的时候
是用STL的模板类比较多,还是自己编写的多

另外,STL的算术函数模板在实际程序开发时使用的频繁吗
还是自己编写的比较频繁
11 回复
#2
野比2007-06-29 21:42
实际开发是看那个方便用那个..
有时候就算用库方便, 但是因为效率(库是通用的, 所以效率不是最高), 老板会要求你自己写专用库...
这个时候, 真的非常想太阳人....
#3
aipb20072007-06-30 00:06
标准库里的东西是很多代c/c++精英的精华。
已经为你做好了,你只管用就是,这样可以让你写代码更容易,简洁。
可以开发自己的类库。
#4
fyi11062007-06-30 00:10

库里的东西一般都是用汇编写的,这样也怀疑它的效率?

如果确实用一些库里面没有的东西,那就只能自已写了。

#5
aipb20072007-06-30 00:38
用汇编写的?
这个倒是第一次听说。
#6
ichigo2007-06-30 09:16
以下是引用野比在2007-6-29 21:42:06的发言:
实际开发是看那个方便用那个..
有时候就算用库方便, 但是因为效率(库是通用的, 所以效率不是最高), 老板会要求你自己写专用库...
这个时候, 真的非常想太阳人....


原来用不用是看老板的...

#7
野比2007-06-30 09:36

拉登兄的言论真的很有意思.. 用汇编写的就效率高?
姑且当他是汇编写的吧(其实很多是C写的)..
如果我只需要一个整数输出打印功能, 我用iostream.h和我自己写个函数, 那个效率高?
要知道通用库因为要考虑各种情况而进行了很多重载,判断,错误处理...影响了在具体应用中的使用.. 占用的空间也多..
你在普通PC上开发还不觉得, 如果以后你进到Embeded这一行后, 你会发现.. 标准库用的并不多..

#8
fyi11062007-06-30 09:57


野比是真高手。
没错,当遇到一些通用性问题时,标准库的效率就比较低了。
当对于一些专用应用,涉及到一些像输入输出之类的操作时,还得开发自已的库。

但对于标准库里的那些算术模板,可能就不用自已写吧,除非要用一些实在是很复杂的算术。

#9
aipb20072007-06-30 10:06
LS错误,通用性问题,推荐使用标准库,全面而且安全。
在具体某个问题,考虑的效率或者其他要求,当然也许自己另外开发来的更好。

效率问题,我想在这里不是考虑的必要,因为毕竟这不是算法或者涉及到某个方法,仅仅只是些基本的行为。

要想提高效率,重要的是设计相对最优的解法,这样比在语法上深究更实在。
比如++i和i++效率不一样,但是在程序中,死扣这点对程序究竟有多大实际的帮助呢?
#10
fyi11062007-06-30 10:16

就像野比说的,在普通PC上,推荐用标准库,但在专用机上,比如嵌入式,那就要选择性地用标准库了。

效率问题,主要是程序的算法,就像楼上说的设计最优解法,但楼上有没有考虑有大量输入输出的情况。

有时频繁的输入输出和容器的操作会明显地降低效率。

[此贴子已经被作者于2007-6-30 10:17:04编辑过]

#11
野比2007-06-30 10:25

我一般会在老板能忍受的最大限度内用通用库... 能用现成的蠢蛋才不用..

ps. 在Embeded里, 要同时考虑效率和空间问题..
如MP430在单片机里算较好的了, 也只有1KB的ROM, 多来几个i++就受不了了...

#12
HJin2007-06-30 11:30
you may also visit www.boost.org

and search TR1/TR2 (technical report)

for possible future addition to the standard c++ library.
1