【发布时间】:2013-02-09 03:13:59
【问题描述】:
我想知道与向量相比,队列使用了多少内存。前几天我遇到了一个问题,我有一个使用大约 60MB 的 int 队列数组,当将相同的数据放入一个使用大约 4MB 的向量向量中时。这是我在编写程序时的错误还是 stl 队列通常比向量使用更多的内存?
【问题讨论】:
-
std::queue只是一个容器适配器,它封装了对底层序列类的功能公开,包括std::list、std::vector和std::deque等序列,后者是默认值。在不知道您使用的是哪个底层容器的情况下,很难说。使用std::list会显着增加每个元素的开销,因为每个元素都会被赋予两个额外的成员数据(前后指针)。但最终,它是依赖于实现的。现在,在您的情况下,数量级有所不同,这有点可疑。 -
我有
queue<int> stuff[100000]