矢量和列表

Anonim

矢量与列表

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

矢量 向量用于数组保持和元素访问。在这里,您可以使用“[]”运算符随机访问任何元素。因此,通过向量操作可以轻松查看所有元素或一个特定元素。因此,如果您在最后,开头或中间插入任何对象,则向量具有加号,因为您可以访问随机地址并在那里进行更改。但是,与列表对象相比,向量有点慢。向量被视为同步对象,在随机访问中有效,并且它们使用同步列表正确保存数据。只要不需要插入或删除,就会选择一个向量 中间(列表)或从前面。 数组中元素的数量可能会有很大差异。 例: 矢量V; V.insert(V.begin(),3); 断言(V.size()== 1 && V.capacity()> = 1 && V [0] == 3);

清单 列表是支持前向和后向遍历的“双链接序列”。插入和删除在开始,结束和中间所花费的时间是不变的。链接列表之间的插入和拼接不会使元素中的任何迭代无效。只有删除才会使迭代失效。它们不同步,因此无法随机访问。迭代的顺序可能会根据用户而改变,但它不会影响元素的任何更改。它们比向量更快,非常适合在元素列表的开头,中间和结尾插入和删除。

例: #包括 //列出类模板定义 …. int main() { int array [4] = {2,6,4,8}; std:: list <int>值; std:: list <int> otherValues;

摘要: 1.矢量是一个列表不同步。 2.列表没有默认大小,而向量的默认大小为10。 3.列表和向量都是动态增长的数组。 4.列表不是线程安全的,而向量是线程安全的。 5.列表,因为它们仅适用于前后的添加和删除,但更快 向量需要更多的CPU。 6.矢量按其大小增加两倍,而列表减少一半,即50%。