【发布时间】:2013-08-03 02:11:20
【问题描述】:
我们知道std::vector给出的是连续的内存布局,而std::list给出的是链接的内存布局,我的问题是std::vector<:list>的内存布局是什么?它是包含 std::list 的内容还是只包含几个指向列表的指针?
【问题讨论】:
-
它与任何其他
std::vector<T>相同(除非T=bool):它包含T的数组。在这种情况下,它是一个std::list的数组。 -
@nneonneo:几乎闻起来像 OP 想知道如果列表本身是向量的元素,向量是否会包含列表的元素。
-
好吧,在那种情况下,答案显然是否定的。
std::vector不在乎T是什么,只要它是可复制的。 (原则上,您可以设计一个专门用于承载其他容器的容器......) -
@nneonneo:没错。你应该把这两个 cmets 作为答案。
-
@VladLazarenko:完成。
标签: c++ list memory vector stl