Re: Re: [cpp] C++ Map 在32位模式下最大容限是多少?

林绍川 lsccsl at tom.com
Wed Mar 26 19:08:45 CST 2008


呵呵,是哪个版本的stl把rbtree线索化了啊?

准确说是 实现map和set的时候会 线索化


在08-3-17,陈超 <alpha.1986 at gmail.com> 写道:
一般情况下,STL实现红黑树时会线索化二叉树,这样子就又增加了标志域。如果采用64位的OS的话,每个指针也都是64位了,这样就业得不偿失了。另外关于64位的系统int,long这些和32的不太一样。而且每个之间又有差别,这样跨平台的话,可能以前的代码就需要做很多修改了。



在08-3-17,李慧霸 <magazine.lihuiba at 163.com> 写道: 

有如此高的内存需求,多半是服务器程序,那么64位OS是最好的选择。

c++的map是用红黑树实现的,每个节点(就是每个元素)的额外开销应该不超过16字节(
有待求证)。"额外开销"是指除了存储你的key、value之外的开销。所以2G的地址空间

应该可以存放很多东西。

如果其他部分的内存开销不大,可以考虑C++ interop(不用COM),甚至直接用C++/CLI生
成托管代码。否则可以考虑进程外COM。

------------------
李慧霸
2008-03-17

-------------------------------------------------------------
>发件人:quengzi

>发送日期:2008-03-13 12:27:24
>收件人:Cpp at codingnow.com
>抄送:quengzi at gmail.com

>主题:[cpp] C++ Map 在32位模式下最大容限是多少?
>
>在C#中32位机器Hash容器最多2000万多一些(内存达到容限)
在C++中是否有同样的问题?
如果我用C++写一个COM组件,是否可以扩展内存,在Map中存放更多的内容?
_______________________________________________
Cpp mailing list
Cpp at codingnow.com

http://codingnow.com/mailman/listinfo/cpp
>

_______________________________________________

Cpp mailing list
Cpp at codingnow.com
http://codingnow.com/mailman/listinfo/cpp



-- 
Chao Chen 

P.L.A. Information Engineering University

Zhengzhou,Henan,China
Blog:http://blog.alpha1986.cn

Email:alpha.1986 at gmail.com 

-- 
Chao Chen 

P.L.A. Information Engineering University


Zhengzhou,Henan,China
Blog:http://blog.alpha1986.cn
Email:alpha.1986 at gmail.com 
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20080326/86b41964/attachment.html


More information about the Cpp mailing list