我知道deque和vector都预留了一些增长空间。 vector :: capacity()能够获得向量的内部保留空间。 Deque在标准中没有这样的成员。有什么方法可以获取这些信息吗?有没有办法让vector的内部存储大小为vector :: capacity?
3
A
回答
6
不可移植。没有capacity
成员deque的原因是因为它不使用连续内存。没有理由,性能明智地考虑它。
7
你必须深入实施才能弄清楚。 gcc 4.1.1附带的std::deque
版本似乎以512字节块分配内存。但就我看到所有下划线和C型表演到size_t
15分钟后,我得到了。然后,我遇到了这个评论:
最初的底层内存布局是一个有点复杂......
+2
+1我喜欢这样的评论 – Patrick 2010-07-01 15:04:22
相关问题
- 1. 让std :: vector分配对齐的内存
- 2. 有没有办法将std :: vector <const T*>转换为std :: vector <T*>而无需额外分配?
- 3. QVector和std :: vector的大小方法
- 4. 有没有办法让文件大小只有FileDescriptor?
- 5. 如何知道std :: vector的分配内存大小?
- 6. 有没有办法限制ASP.NET 3.5进程的最大内存大小?
- 7. 有没有办法让python str.partition忽略大小写?
- 8. 在Oracle中有没有办法让列不区分大小写?
- 9. 有没有办法让屏幕大小以dpi
- 10. 有没有办法让rfind()不区分大小写?
- 11. 有没有办法让Perl标量不区分大小写?
- 12. 有没有办法转储所有的物理内存值?
- 13. 有没有办法创建一个动态分配数组的std :: vector?
- 14. 有没有办法让s tkinter小部件失去焦点?
- 15. std :: vector <float> to std :: vector <glm::vecX>没有复制
- 16. 如何存储在C++中Vector从Vector中弹出的项目
- 17. 有没有办法让我的textarea成长为符合我的文字大小?
- 18. 有没有办法让numpy矩阵存储对象?
- 19. 有没有办法让SQL Server存储过程自动出错?
- 20. boost :: numeric :: ublas :: vector内部数据存储指针
- 21. C++的std :: vector的内存/分配
- 22. vector :: clear:内存问题
- 23. 2d std :: vector连续内存?
- 24. 有没有办法确定Android存储设备是内部还是外部?
- 25. 有没有办法让一个字大小在32位寄存器指令
- 26. 缓存行为:: vector的
- 27. C++“vector of vector”
- 28. 有没有什么办法让内核使用恒定或全局内存取决于数据大小
- 29. 修复(锁)大小的std :: vector
- 30. C++ vector向量大小的下一列
又见香草萨特的[大师的周#54:使用vector和deque(HTTP ://www.gotw.ca/gotw/054.htm)。 – 2010-07-01 14:07:12
我读了那章。在现实中可能没有理由让deque的能力,但我只是好奇。 – Dingle 2010-07-01 14:24:47
你想知道什么能力?在向量中,很明显,增长是一个相当昂贵的操作,其中所有现有对象必须移动到内存中的不同位置,但出队增长并不昂贵。那就是:容量是它在成长之前能够容纳多少元素变得痛苦。这只适用于矢量。 – 2010-07-01 15:01:34