这不是代码问题,但是我完成了一个保存列表向量的程序,但是我突然想到...如果向量的元素在内存中是连续的,但是列表需要指针,因为它不是连续的内存。 列表向量实际上是连续的,如果其元素不是? (使用C ++语言)。
答案 0 :(得分:1)
是的,这仅表示矢量元素是列表类型,并且这些元素的数据在内存中是连续的。但是,在列表元素“内部”可能有指向其他存储位置的指针。从本质上讲,向量元素中引用的所有内容在内存中都不是连续的,但是引用本身是。
答案 1 :(得分:0)
如果列表的元素不是,那么列表的向量实际上是连续的?
是,不是。
从向量的角度看,它仍然是连续的。每个元素,每个std::list
的立即数据都是连续的。
但这只是其内部指针等。反过来,每个std::list
的每个实际元素都隐藏在另一层间接寻址之后。
因此最终的数据不会连续存储。
列表的向量真的是向量吗?
好吧,这取决于您对“向量”的含义以及您对该定义的严格程度。
欢迎使用抽象!