容器的存储分为顺序存储和链式存储
## 一、顺序存储结构
从数据结构的角度来说顺序储存结构的存储空间固定,可扩展性差,但是如果数据元素个数已知,较链式存储节省空间。
它的优点是随机读取任意一个元素(因为元素时顺序存储的,所以元素的存储位置之间有一定的关系)但是顺序存储的缺点是删除、插入操作需要花费很多时间在移动元素上。
STL中的vector就是典型的顺序存储结构。
## 二、链式存储结构
对于链式存储而言,插入和删除元素开销小,操作简便,最大特点就是插入、删除运算方便,可扩展性强。STL中list、map就是典型的链式存储结构。
下面是它的特点:
1.比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成,所以相同空间内假设全存满的话顺序存储比链式存储能存得更多)。
2.逻辑上相邻的节点物理上不必相邻。
3.插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
4.查找结点时链式存储要比顺序存储慢。
5.每个结点是由数据域和指针域组成。
## 三、结论
综上所述,如果元素个数已知,且插入删除较少的可以使用顺序结构,而对于频繁有插入删除操作,元素个数未知的,最好使用链式结构,编程时可结合要处理的数据的特点选择或设计数据结构的。
- 前言
- C++读取配置文件
- 结构体内存对齐后所占内存空间大小的计算
- do{}while(0)的妙用
- Cocos2dx实现翻牌效果(CCScaleTo与CCOrbitCamera两种方式)
- C++的error LNK2019: 无法解析的外部符号编译错误
- Java使用JNI调用C++的完整流程
- strupr与strlwr函数的实现
- strcat函数实现
- Windows上VS使用pthread重温经典多线程卖票(pthreads-w32-2-8-0-release.exe)(windows上使用pthread.h)
- pthread的pthread_join()函数理解实验
- 顺序存储结构和链式存储结构的选择
- C语言冒泡排序
- VS看反汇编、寄存器、内存、堆栈调用来学习程序设计
- 快速排序
- C++的构造函数初始化列表
- fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No such file or directory
- C++实现简单的String类