c++ STL (1)

封面

本篇介绍 vector 数组。

定义

// 一维
vector</*填数组需要的类型*/>/*数组名字*/;
// 以下以 int 类型示范
//创建一个一维的 int 类型 vector 数组,数组名叫 sz
vector<int>sz;
// 创建一个长度为 n 的数组
vector<int>sz(n);
// 创建一个长度为 n 的数组,并且数组内的所有值为 i
vector<int>sz(n,i);


// 二维
vector<vector</*填数组需要的类型*/> >/*数组名字*/;
vector<vector</*填数组需要的类型*/> >/*数组名字*/(/*第一维的大小*/,vector</*填数组需要的类型*/>(/*第二维的大小*/));
// 以下以 int 类型示范
// 创建一个类型为 int 的二维 vector 数组,名字叫sz
vector<vector<int> >sz;
// 创建一个普通数组这么写 "int sz[5][10]" 的 vector 数组
vector<vector<int> >sz(5,vector<int>(10));
// 创建一个普通数组这么写 "int sz[5][10]" 的 vector 数组,并且把初值为 5
vector<vector<int> >sz(5,vector<int>(10,5));

STL 操作

在表格中被 /* */ 框起来的为选填。

操作   数组名为 szsz 含义及复杂度
sz.front 返回第一个数据   OO(11)
sz.back() 返回数组中的最后一个数据   OO(11)
sz.pop_back() 删除最后一个数据  OO(11)
sz.push_back(x) 在尾部加数据 xx  OO(11)
sz.size() 返回 szsz 的实际数据个数   OO(11)
sz.clear() 清除数组元设有 NN 个元素 OO(NN)
sz.resize(n/*,x*/) 改变数组大小为 nn 其中这增加的元素的值为 xx 未填默认为 00 OO(NN) NN 为新容器的大小
sz.insert(it, x) 向任意迭代器 itit 插入一个元素 xx     OO(NN)
例:sz.insert(sz.begin()+2,-1) 1-1 插入 sz2sz_2 的位置
sz.erase(first,last) 删除区间 firstfirst 到 lastlast 的元素 OO(NN)
sz.begin() 返回首元素的迭代器   OO(11)
sz.end() 返回最后一个元素后一个位置的迭代器   OO(11)
sz.empty() 判断是否为空,为空返回真,反之返回假 OO(11)

ps:本篇文章从 17:30 写到 18:25。