sgi stl的几个小问题,一直没有解决
《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是双向,还是单向,始终是连续空间存储的一个数据结构,那么当元素很多的时候,就会无法存储,意味着重新分配内存,然后拷贝旧元素,释放旧空间。作者说,不会发生。想不通。