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

陈超 alpha.1986 at gmail.com
Mon Mar 17 11:56:19 CST 2008


准确说是 实现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/20080317/4c29a4e5/attachment-0001.html


More information about the Cpp mailing list