列表的向量真的是向量吗?

时间:2019-04-12 00:57:01

标签: c++ list memory vector

这不是代码问题,但是我完成了一个保存列表向量的程序,但是我突然想到...如果向量的元素在内存中是连续的,但是列表需要指针,因为它不是连续的内存。 列表向量实际上是连续的,如果其元素不是? (使用C ++语言)。

2 个答案:

答案 0 :(得分:1)

是的,这仅表示矢量元素是列表类型,并且这些元素的数据在内存中是连续的。但是,在列表元素“内部”可能有指向其他存储位置的指针。从本质上讲,向量元素中引用的所有内容在内存中都不是连续的,但是引用本身是。

答案 1 :(得分:0)

  

如果列表的元素不是,那么列表的向量实际上是连续的?

是,不是。

从向量的角度看,它仍然是连续的。每个元素,每个std::list的立即数据都是连续的。

但这只是其内部指针等。反过来,每个std::list的每个实际元素都隐藏在另一层间接寻址之后。

因此最终的数据不会连续存储。

  

列表的向量真的是向量吗?

好吧,这取决于您对“向量”的含义以及您对该定义的严格程度。

欢迎使用抽象!