| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:[讨论]关于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
快速回复:[讨论]关于STL的问题
数据加载中...
 
   



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

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