我应该担心 std::vector 的内存碎片吗?如果是这样,有什么方法可以帮助预防吗?我并不总是预测我的程序会在 PC 上运行,它们也可能会在嵌入式设备/游戏机上运行,所以我不会总是能够依赖虚拟内存。
然后我再次相信使用动态大小的数组比静态数组更有效,这样内存只会在需要时分配。它还会简化我的程序的设计过程。有没有办法有效地实现这一点?
感谢您的任何建议!
最佳答案
您担心的答案可能是 std::deque
。它为您提供了与 std::vector
类似的接口(interface),但在碎片化内存中效果更好,因为它分配了几个小数组而不是一个大数组。它实际上在某些方面不如 std::vector
有效,但对于您的情况,这可能是一个很好的权衡。
关于c++ - 我应该担心 std::vector 的内存碎片吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955794/