向量和列表经常使程序员感到困惑,向量和列表是C++和Java中数组持有中使用的序列。这两个术语保存数组地址,但是保存数组的方法不同。
我们需要知道的基本知识是,数组是一个“列表”,其中包含部分或全部数据,即整数,浮点数或字符,并在方括号“[]”中定义。
实际上,向量和列表根据实例起作用。因此,让我们一一看一下这两个术语。

向量

向量用于数组保持和元素访问。在这里,您可以使用“[]”运算符随机访问任何元素。因此,使用向量运算可以轻松浏览所有元素或一个特定元素。因此,如果您在末尾,开始或中间插入任何对象,则向量具有加号,因为您可以访问随机地址并在其中进行更改。但是,向量与列表对象相比要慢一些。向量被认为是同步对象,可以有效地进行随机访问,并且它们可以正确保存具有同步列表的数据。每当不需要在向量中插入或删除时,都会选择一个向量
中间(列表)或从前面开始。
数组中元素的数量可能会发生巨大变化。

示例:

vector V;
V.insert(V.begin(), 3);
assert(V.size() == 1 && V.capacity() >= 1 && V[0] == 3);

列表

列表是“双向链接序列”,支持正向和反向遍历。 在开始,结束和中间插入和删除所花费的时间是恒定的。 链表之间的插入和拼接不会使元素中的任何迭代无效。 仅删除会使迭代无效。 它们不同步,因此不能随机访问。 迭代的顺序可以根据用户进行更改,但不影响元素的任何更改。 它们比向量要快,是在元素列表的开始,中间和结尾插入和删除的理想选择。

示例:

#include
// list class-template definition
….
int main()
{
int array[ 4 ] = { 2, 6, 4, 8 };
std::list< int > values;
std::list< int > otherValues;

总结

  1. 向量不同步,列表同步。
  2. 列表没有默认大小,而向量的默认大小为10。
  3. 列表和向量都是动态增长的数组。
  4. 列表不是线程安全的,而向量是线程安全的。
  5. 由于列表仅适用于前后的添加和删除,因此列表更快;向量占用更多的CPU。
  6. 向量的大小增加两倍,而列表的大小增加一半,即50%。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:向量(Vector)和列表(List)
本文链接:https://www.vsdiffer.com/vs/vector-vs-list.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。