`
473687880
  • 浏览: 484576 次
文章分类
社区版块
存档分类
最新评论

c++中vector与list的区别

 
阅读更多

c++标准库中,容器vector和list都可以用来存放一组类型相同的数据。而且二者不同于数组的一点是,支持动态增长。但它们还是有有几点不同

(1) vector是顺序表,表示的是一块连续的内存,元素被顺序存储;list是双向连接表,在内存中不一定连续。

(2)当数值内存不够时,vector会重新申请一块足够大的连续内存,把原来的数据拷贝到新的内存里面;list因为不用考虑内存的连续,因此新增开销比vector小。

(3)list只能通过指针访问元素,随机访问元素的效率特别低,在需要频繁随机存取元素时,使用vector更加合适。

(4)当向vector插入或者删除一个元素时,需要复制移动待插入元素右边的所有元素;因此在有频繁插入删除操作时,使用list更加合适。

分享到:
评论

相关推荐

    C++STL vector list map set dqueue 等应用举例及PPT讲解示例,代码演示

    C++STL vector list map set dqueue 等应用举例及PPT讲解示例,代码演示

    vector list map pair stl 标准模板库 c++

    vector list map pair stl 标准模板库 c++ 程序示例

    C++ STL vector 容器介绍

    该文档详细讲解了C++中标准容器的使用,是一份不错的学习资料哦

    c++容器list、vector、map、set区别与用法详解

    c++容器list、vector、map、set区别 list 封装链表,以链表形式实现,不支持[]运算符。 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。 新添加的元素,...

    C++中STL的基本用法总结

    C++的STL string vector list stack queue set map 等常用的容器使用

    c++ vector 小例子

    vc++ vecotr 的例子 主要几个函数跟list的运用 迭代器的使用

    C++中vector容器的常用操作方法实例总结

    vector容器一般被用作创建动态数组,动态数组就像Python中的list结构一样,可以比普通数组拥有更丰富操作方法,下面就为大家整理了一些最常用的操作:

    C++ vector的用法小结

    在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。 标准库vector类型使用需要的头文件:#include <vector>。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。Vector的存储空间是连续...

    C++中的vector容器对象学习笔记

    C++中数组很坑,有没有类似Python中list的数据类型呢?类似的就是vector! vector 是同一种类型的对象的集合 ,每个对象都有一个对应的整数索引值。和 string 对象一样,标准库将负责管理与存储元素相关的内存。 ...

    c++list类实现

    2)数据结构里面两种非常重要的存储结构,线性结构中的连续存储结构(代表vector数组)和非连续存储结构(代表list链表),他们两者被广泛的应用在各个领域,是最基本最基础的两种存储结构; 3)之前的友元类只是...

    C++STL学习?vector

    容器(Container):是一种数据结构,如list,vector,deque,queue等,以模板类的方法提供,为了访问容器中的数据,可以使用由容器类提供的迭代器。  二。迭代器(Iterator):提供了访问容器中对象的方法。  三...

    关于C++中vector的两个小tips分享

    前言 本来这篇文章标题我想起成《关于 vector 的两个小坑》,后来想想,其实也不算是坑,还是自己对...void Duplidate(vector* element_list, Element* element) { element_list.push_back(*element); } void Process()

    C++容器vector实现通讯录功能

    最近写了一个C++版本的通讯录,参考代码如下所示。 main.cpp /***************************************************** Copyright (C): 2017-2018 File name : main.cpp Author : Zhengqijun Date : 2017年02月...

    本例程提供了C++的STL常用数据结构及其算法的使用范例,比如vector、string、list

    本例程提供了C++的STL常用数据结构及其算法的使用范例,比如vector、string、list、forward_list、deque、queue、stack、map、set、multimap、multiset、tuple、bitset的使用范例,以及algorithm常….zip

    tree(c++ tree容器)

    该源码可用于建立树结构的数据结构,与c++标准库中中vector, list, map等用法完全相同,只需要在程序中包含该头文件即可使用,可以作为标准库的补充

    C++模板(vector、map、multimap、set、multiset)

    一共四个doc文件,list综合实例、multimap和map的实例、set和multiset的综合实例、vector综合实例

    c++参考手册 2018版

    initializer_list (C++11) 概念库 (C++20) 诊断库 通用工具库 智能指针与分配器 日期和时间 函数对象 − hash (C++11) 字符串转换 (C++17) 工具函数 pair − tuple (C++11) optional (C++17) − any (C++17) ...

    【c++】STL之list用法总结

    与之相似的forward_list是单向链表,可以理解为forward_list是一个行动受限的list,凡是list没提供的功能,forward_list也不提供,forward_list的优点是内存用量少,行动也略快速。 list不支持随机访问。如果你要...

    STL讲义其中包含部分有: vector list map,还有一些例子

    STL讲义,其中包含部分有: vector list map,还有一些例子

Global site tag (gtag.js) - Google Analytics