STL与基本数据结构
Posted salty-fish
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL与基本数据结构相关的知识,希望对你有一定的参考价值。
这是我第一次用Markdown来写东西,先纪念一下~
这篇博客就先把常用的STL容器记一下,方便以后查阅。
Vector
定义
例子 | 说明 |
---|---|
vector <数据类型> a; |
最基本的定义方式,a为空 |
vector <数据类型> b(a); |
用a来初始化b |
vector <数据类型> c(num1,num2); |
使容器内有num1个值为num2的元素 |
常用操作
功能 | 例子 | 说明 |
---|---|---|
赋值 | a.push_back(100); |
在尾部添加一个元素 |
元素个数 | int size = a.size(); |
返回元素个数 |
判断是否为空 | a.empty() |
如果为空,返回真;否则返回假 |
打印 | cout<<a[0] |
vector支持像数组一样输出 |
中间插入 | a.insert(a.begin()+i,k) |
向第 i 个元素前加入值为k的元素 |
尾部插入 | a.insert(a.end(),num1,num2) |
向尾部插入 num1 个值为 num2 的元素 |
删除尾部 | a.pop_back() |
删除最后一个元素 |
删除区间 | a.erase(a.begin()+i,a.begin()+k) |
删除区间 [ i , j - 1 ] 的元素 |
删除元素 | a.erase(a.begin()+i) |
删除第 i+1 个元素 |
调整大小 | a.resize(n) |
调整a的大小到n |
清空 | a.clear() |
清空 |
反转 | reverse(a.begin(),a.end()) |
反转整个数组 |
排序 | sort(a.begin(),a.end()) |
从小到大排序 |
vector其实就是可变长度的数组,特点就是随机访问的效率高O(1),但删除和中间插入是O(n)
以上是关于STL与基本数据结构的主要内容,如果未能解决你的问题,请参考以下文章