陈妍希柯震东演的电影:c++中,array, vector,list的比较

来源:百度文库 编辑:高校问答 时间:2024/04/29 09:20:42
请教各位,上述几种数据结构的比较?
谢谢!

array 数组。
数组类似数学中描述一维,二维,三维到N维的空间标量。
例如二维数组,z(x,y), x=i*dx, y=j*dy, i=0,1,2,3...9; j=0,1,2,3,..19; dx=1公里,dy=1公里,
(x,y) 构成平面网格点,z(x,y) 是格点处的温度。
这个数组有10x20个格点(位置),含200个温度值。也就是数组里的所有元素物理单位相同。

vector 是向量,例如,某地的风速度是向量,它有速度大小和方向,并随时间变化。如果把它写出来,我们可以写成三列,第一列是时间,第二列是风的速度,第三列是风的方向角。这三个列的数的个数相同,物理单位不同。每列中第i个量是有关的--发生在同一时间。
我们可以把它们写成三个一维数组。
当然也可以合写在一个含三个列的二维数组里,例如float型的含三个列的二维数组里,这时要注意三个列的物理单位不同。

list 是一种结构,即不同数据类型的量的组合。例如成绩单,人名,学科是字符串,学号,成绩是整型量。

list有两种,arraylist也叫顺序表,链式表。
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入删除元素涉及数组元素,即添加删除一个元素,其后面的元素都要移动。所以查找数据快而添加,删除数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而链式表在插入和删除上通常比前两者容易,但其在查找时,并没有像数组一样提供角标,而是每次都要从一端的节点开始读取,直到找到要指向的位置。