首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

sgi stl的几个问题,一直没有解决

2012-04-18 
sgi stl的几个小问题,一直没有解决C/C++ code 《stl源码剖析》一书:1.siglist 中的成员函数sort (stl_list.h

sgi stl的几个小问题,一直没有解决

C/C++ code
 《stl源码剖析》一书:    1.sig    list 中的成员函数sort (stl_list.h文件中) 的代码中,有个函数叫 swap ,  调用例子为:carry.swap( counter[i++] );  用vs助手看不到源码啊,注意参数是一个的版本。Vs2010 没法编译运行sgi,所以不能跟进去。谁知道代码,给我一份啊,谢谢了啊。        2. Sgi版本中的list是双向环形, 环形是不是必须的???我在 《c++标准库》一书上,看到一个图片,关于 list的,没有说标准规定 list必须是环形的!!!!直说了双向是必须的。    3. deque没有所谓容量观念,因为它动态地以分段连续空间组合而成,随时可以增加一段新的空间并连接起来。换句话说,像vector那样, 因旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间这样的事情在deque是不会发生的。也因此,deque没有必要提供所谓的空间保留reserve功能。  这段话看不懂,无论deque是双向,还是单向,始终是连续空间存储的一个数据结构,那么当元素很多的时候,就会无法存储,意味着重新分配内存,然后拷贝旧元素,释放旧空间。作者说,不会发生。想不通。


[解决办法]
2.环形非必须。
3.因为deque的内存一段段挂接的,所以不会存在整体内存重新分配的情况,内存不足那么分配一段接上去然后将新元素加到新分配的内存。
[解决办法]
探讨
引用:

2.环形非必须。
3.因为deque的内存一段段挂接的,所以不会存在整体内存重新分配的情况,内存不足那么分配一段接上去然后将新元素加到新分配的内存。

路过问下。。。
怎么VS系列上的deque内存管理和vector一样,不够了都是重新分配?关于deque的实现有规定吗?

热点排行