在这里,我不是在谈论特定的编程语言。我想知道这些东西之间的区别,就像不同的数据结构之间的区别一样。我认为列表基本上应该是可调整大小的,而数组则不是,但我不确定。
在这里,我不是在谈论特定的编程语言。我想知道这些东西之间的区别,就像不同的数据结构之间的区别一样。我认为列表基本上应该是可调整大小的,而数组则不是,但我不确定。
list
的类型和一个称为array
的类型,并且它们具有一些更好定义的含义。l[0]、l[1]、l[2]
等),或者使用称为“头”和“尾”的两个操作完成的,其中head(l)
返回l
的第一个元素,而tail(l)
返回丢弃第一个元素后获得的子列表。在我的想象中,一个由四个元素组成的列表如下:
-> 3 -> 7 -> 12 -> 9
数组:
a[something]
访问元素);允许任何内容用作索引的数组通常在大多数语言中称为map
或dict
,其中array
严格指由整数索引的线性结构;但在一些语言中,例如PHP,它仍然被称为数组。
在我看来,由四个元素组成的数组如下所示:
+--+--+--+--+
| 0| 1| 2| 3|
+--+--+--+--+
| 3| 7|12| 9|
+--+--+--+--+
元组:
(3, 7, 12.0, "9")
的类型为(int, int, float, string)
,返回特定类型的元组的函数不能突然返回不同类型的元组。在强类型语言中,元组有时被称为“积类型”,类比于数学中的笛卡尔积,并且与C语言中的struct
非常接近。在弱类型语言中,元组非常接近于列表。
是的,你说得对。
数组可以创建固定大小的,并且如果数组已满,则无法添加项目。
列表是动态数组,可以根据需要添加项目。在某些语言中,例如C#,List内部使用数组。当添加新项并且数组已满时,将创建一个大小加倍的新数组。
您可以查看C#
中List<T>
的实现
std::list
通常被实现为双向链表。 - undefined