数组,向量和链接列表

Ade*_*e A 1 c++ arrays linked-list vector data-structures

我的主要问题是矢量如何工作.

我知道链表是​​连接在一起的节点列表.这就是我在脑海中想象的方式.但我无法想象矢量是什么样的.

我读到矢量具有随机访问权限,就像数组一样.但什么是随机访问?计算机最终是否最终在内部搜索索引?我这样说是因为我可以通过运行for循环来重载[]运算符以给出链表中的 i 元素.

什么是阵列?我知道数组是如何工作的,但它背后的是什么,它是一个节点集合吗?我只是为了一般知识而要求这个.

是关于向量的问题.它看起来与用于链表的函数非常相似.

DeC*_*Caf 6

vector在C++是esentially包装的阵列,当你新元素添加到它提供的它自动调整大小的类.

数组本质上只是一个连续的内存块,其中每个元素都在内存中一个接一个地放置.

随机访问基本上意味着通过索引访问元素,即获取列表中的第5个元素.数组(因此vector)提供有效的随机访问,并具有元素的恒定时间查找.这意味着访问第5个元素和第573个元素一样快.

由于vector包装数组并将其数据作为数组存储在内部,因此元素查找的效率与数组(基本上)相同.并且它不需要查找索引或类似的东西,因为它将数据保存在数组中.