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与基本数据结构的主要内容,如果未能解决你的问题,请参考以下文章

C++ STL应用与实现6: 如何使用std::list

C++ STL应用与实现6: 如何使用std::list

算法学习——STL和基本数据结构

C++的探索路20标准模板库STL之STL的基本概念与容器

C++的探索路20标准模板库STL之STL的基本概念与容器

STL库之集合基本使用方法