C++常用数据结构总结

  • 前言
    所有的容器归根到底都是内存空间的排列方式和在空间上施加各种各种不同的限制所得的。空间排列方式只有线性和链式两种方式,链式是通过记录每一个数据的地址来实现查找下一位数据的。而每一个容器所具有的特性就决定了它所适用的情况,总的来看容器常用的无非是增删改查操作,下面将从适用场景、常用操作来进行总结。

  • array数组
    内存空间为连续的一段地址,适用于提前已知所要存储的数据类型和数量、进行大量的查、改操作,不适用于含有大量交换、删除、增加数据的操作,该容器无法动态改变大小,所以说提前已知存储数据类型和数量。图片介绍了数组的初始化、赋值、遍历、获取大小、获取特定位置数据的方法。
    在这里插入图片描述

  • queue队列
    该容器内存结构最好为链式结构,最知名的特点是先进先出,能动态调整大小,适用于包含大量增、删操作的情况,但不适用于含有大量查找操作的数据。图片介绍了队列初始化、赋值、弹出操作。
    在这里插入图片描述

  • stack 栈
    栈在内存上可为连续或者链式,于队列相反的是它为先进后出,适用于压栈出栈操作,如可用于图的遍历、递归函数的改写等,图片介绍了栈的创始化、压栈、出栈等操作。
    在这里插入图片描述

  • list 链表
    链表在内存结构上为链式结构,也就决定它可以动态增加,适用于包含大量增加、删除的应用,但不适用于包含大量查询的操作,图片介绍了链表的创建、添加数据、删除数据、获取数据等操作。
    在这里插入图片描述

  • map
    map为关联式容器,提供一对一服务,每个关键字在容器中只能出现一次,适用于一对一服务。
    在这里插入图片描述

  • set 集合
    set集合最大的特点是里面的元素按序排列不重复,图片演示集合初始化、插入、删除、查找等操作。
    在这里插入图片描述

  • vector向量
    vector向量和array不同,它可以根据数据的大小而进行自动调整,图片仅展示初始化、插入、删除等操作。
    在这里插入图片描述

  • 总结
    这些容器在http://www.cplusplus.com/网站都有详细的介绍,看文档很容易学会它们,毕竟都把实现过程都隐藏起来了,只需要多加实践即可掌握这些容器的使用方法,多练多操作。

猜你喜欢

转载自blog.csdn.net/Leader_wang/article/details/82959362