程序 = 常见数据结构构 + 算法
运行期間无法改变数组大小由编译期间确定,C++中array即此类
矢量只能在末尾增删元素
数组大小增长策略:每次增加长度为原来1倍(有些编译器增加0.5倍)
这样可保证追加元素的平均时间复杂度为O(1)
优先队列,默认由 vector 实现也可由 deque 实现。它保证顶部元素始终是最大值可用于实现堆排序。
双端队列可在开头或末尾增删元素
栈,默认由 deque 实现也可由 list 或 vector 实现。是一种先进后出的常见数据结构构
队列默认由 deque实现,也可由 list 实現是一种先进先出的常见数据结构构
只能从头到尾顺序遍历,不能逆序遍历即没有 rbegin() 接口
常见的树有二叉树、二叉搜索树、二叉平衡树、红黑树等。
C++ 中的 set multiset map multimap 是用二叉搜索树实现的这种常见数据结构构支持二分搜索,所以增删改查的复杂度都是O(logn)
类似数学中的集合,set 中不能包含重复的元素元素是排好序的,且不能被修改
与 set 类似,但可以包含重复元素
映射类似数学中的函数每一个 key 对应一个 value,写成函数表達式为:value=f(key)其中 f 被称为哈希函数。
接口与 set 类似不在赘述
接口与 map 类似,不在赘述
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。