Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用STL列表和向量、链表和数组的优缺点_Arrays_List_Data Structures_Vector_Linked List - Fatal编程技术网

Arrays 使用STL列表和向量、链表和数组的优缺点

Arrays 使用STL列表和向量、链表和数组的优缺点,arrays,list,data-structures,vector,linked-list,Arrays,List,Data Structures,Vector,Linked List,我想知道STL:list、STL:vector、数组和链表在基本级别上的区别是什么 我的理解是,通常,链表允许扩展列表,插入和删除更容易,但直接访问链表中的单个元素需要更长的时间,因为您需要遍历每个元素 我可能遗漏了许多其他的关键区别,所以您也可以指出一些更明显的区别 相比之下,列表和向量是如何发挥作用的?您何时会选择其中一个 下面是列表和向量之间的一些区别 插入所用的时间:列表插入 元素,其中as向量内部需要重新定位 如果 向量的容量等于向量中存在的元素数 矢量。这会给处理器和时间带来开销 访

我想知道STL:list、STL:vector、数组和链表在基本级别上的区别是什么

我的理解是,通常,链表允许扩展列表,插入和删除更容易,但直接访问链表中的单个元素需要更长的时间,因为您需要遍历每个元素

我可能遗漏了许多其他的关键区别,所以您也可以指出一些更明显的区别


相比之下,列表和向量是如何发挥作用的?您何时会选择其中一个

下面是列表和向量之间的一些区别

  • 插入所用的时间:列表插入 元素,其中as向量内部需要重新定位 如果 向量的容量等于向量中存在的元素数 矢量。这会给处理器和时间带来开销
  • 访问数据所需的时间:向量在列表中占上风 这方面。Vector需要恒定的时间来访问存在的元素 在中间。其中as列表需要遍历列表以 到达所需的元素
  • 容器占用的内存:向量的容量和大小 不一定要一样。向量的容量增加了 按指数计算,实习生消耗的内存比实际需要的内存多 集装箱。列表占用的内存与存储所需的内存完全相同 元素,因此在由 这样可以节省内存

  • tl可能重复;dr:使用向量–99%的时候它都是正确的工具。链表几乎从来没有什么好处。请注意,它不再称为标准模板库。这是C++标准库,我标错了副本。试试这个:可能是重复的