文章目录
C++ STL:用法简介 + 常用接口
- 新增@1:
emplace_back
往vector
添加pair
时,应该是xx.emplace_back(x, y)
,需要与xx.push_back({x, y})
区分开。
1.vector
vector是一种变长数组,应用了倍增的思想
用法:vector<数据类型> 变量名(数组大小,数组初始化时每个元素的默认值)
。
举例:vector<int> a(10, 1)
,定义的是一个大小为10(数组大小)
,每个元素均为int(数据类型)
型的数据3(初始化时的值)
的数组a(变量名)
。
返回空数组的方法:return vector<int> {}
,C++11支持更简洁的方式return {}
常用接口:
a.size()
: 返回容器a
的大小。a.empty()
: 判断容器a
是否为空。为空返回true
,否则返回false
。a.clear()
: 清空容器a
,使其size
变为0。front()/back()
: 容器的首个元素和最后一个元素。push_back()/pop_back()
: 从尾部插入一个元素;从尾部删除一个元素。begin()/end()
: 迭代器首元素地址和最后一个元素的地址。[]
: 支持随机访问,a[i]
。支持比较运算
:按字典序比较。lower_bound(a.begin(), a.end(), x)/upper_bound(a.begin(), a.end(), x)
: 返回大于等于x的最小的数的迭代器/返回大于x的最小的数的迭代器。
注意:以上
size()/empty()
两个接口在本文章所介绍到的容器中都有着相同的接口,且时间复杂度均为O(1),以下不再赘述。
2.string
string
是C++对字符数组进行了封装,使用起来更便捷了
用法:例如:string s = "OpenAll_Zzz"
。
操作方式