标题:[讨论]关于STL的问题
取消只看楼主
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
 问题点数:0 回复次数:2 
[讨论]关于STL的问题
由于想更加好的运用STL 和重新认识数据结构,最近我在看SGI 的STL源代码,看到vector的实现方法的时候,发现了个问题 那就是 填充元素的两个函数  unitialize_fill 和 fill ,看了MSDN之后,还是不能区别两个函数有什么区别,事实上,我将里面的代码抽出来,将本来unitialize_fill 的地方换成 fill,都是正常的运行,请问,这两个函数有什么本质的区别?是否新动态分配的内存,用unitialize_fill 填充会快点??
搜索更多相关主题的帖子: STL 
2007-09-09 18:09
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
得分:0 

uninitialized_fill 不好意思,打快了,少了个d
MSDN 是这样说的 Copies objects of a specified value into an uninitialized destination range.
从这里我完全看不出跟fill有什么区别,难道如果内存上还没有初始值,用这个会快一些?

[此贴子已经被作者于2007-9-9 22:52:50编辑过]


c++/C + 汇编 = 天下无敌
2007-09-09 22:50
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
得分:0 

我知道了,unitialized_fill 里面为元素赋值的时候,是用
template<class T1,class T2>
inline void construct(T1 *p, const T2& value){
new (p) T1(value);
}
这样就不需要元素提领,只要地址合法就可以了感谢


c++/C + 汇编 = 天下无敌
2007-09-09 23:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-168769-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.058536 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved