对于C++容器的使用方法,自己一直迷迷糊糊。不是说不理解,只是老是会忘记,所以在这做一个总结,记录下各个容器常用的方法,来提醒自己。
顺序容器
共同方法
主要是迭代器方面,以及size方法。
//假设容器变量为con
//得到首尾迭代器,返回类型为iterator
con.begin(), con.end();
//得到首尾常量迭代器,返回类型为const_iterator
con.cbegin(), con.cbegin();
//得到首尾逆迭代器,返回类型为reverse_iterator, forward_list没有该方法
con.rbegin(), con.rend();
//得到容器内元素个数,forward_list没有该方法
con.size();
//清空容器,array没有该方法
con.clear();
array
跟C-Style的数组类似,但更安全,并且可以使用标准算法
//包含头文件
#include <array>
//创建一个固定大小的array,跟数组类似,这个大小不可改变
array<int, 5> ary;
//[]或at访问对应位置的元素,at比[]安全,因为at进行下标检查
ary[0] == ary.at(0);
vector
向量,动态数组,可自动扩充容量。随机访问快,除尾部之外的增删慢。
//需要包含头文件
#include <vector>
//创建一个可容纳int的vector,其他类型类似
vector<int> vec;
//末尾添加一个元素
vec.push_back(1);
//从末尾删去一个元素
vec.pop_back();
//在指定位置插入一个元素, 第一个元素为vector<int>::const_iterator类型
//insert采用拷贝的方式添加元素,emplace则采用直接构造的方式添加元素
vec.insert(vec.cbegin(), 0);
vec.emplace(vec.cbegin(),