《CI论》· Vector
Vector_Mingfan · · 个人记录
目录
零. 附录(先看附录)
一.定义
二.访问
N.更新日志
零.附录
“Standard Temlate Library”也就是STL库,这个类似仓库的的函数库中有很多实用容器,vector就是一个,其中有很多可以直接调用封装了代码的函数十分快捷。常见容器 -> vector queue stack map pair等(百度食用更佳)以上这些都是用来存储数据的对象。和数组差不多可能就是快了点。
附录End.
一.定义
1).头文件 :
(No.1). #include <vector>包括在#include <bits/stdc++.h>中,也要用using namespace std命名空间,如果不用就要在其调用前加std::。
(No.2). {\color{white}\colorbox{blue}{定义头文件后就定 vector<Variable type> node 这里的 Variable type 为变量类型,可以为 int char double 结构体等,或这直接用STL标准容器,比如 vector queue map set等 }}
{\color{Red}\colorbox{white}{另外:这里的node相当于node [ length ],只是length不确定,你想要多大就多大,随需要而变化,总之随你!}}
e.g.No.2:
vector <int> a; //定义一个装int的一维数组a(大小可变)
vector <double> b; //定义一个装double的一维数组b(大小可变)
vector <node> str; //定义一个装结构体node的一维数组str(node已经定义成结构体)and(大小可变)
(No.3).
{\color{blue}\colorbox{white}{但是如果 Variable type 也是一个STL容器呢?注意啦!定义时需要在两个连着的‘>'之间加一个空格,如果‘>>'写就是 cin>> 输入 或者 右移运算啦}}
e.g.No.3:
vector <vector<int> > a;
(No.4)
其实vector也是可以定义多维数组的。
e.g.No.4
vector <int> a[10001]; //定义一个一维长度已经固定为10001的二位数组(一维长度不固定)
vector <vector <int> > a;//定义一个两个维长度都不固定的二维数组
定义End.
二.访问
(No.1).vector访问的第一种方式是通过下标访问,对于vector<int> a;则a[visit]就是访问容器a中第visit个元素。 a.size()是容器vector a中元素个数
(No.2).vector访问的第二种访问是迭代器访问:
e.g.No.2.定义:
vector<int>::iterator pointer = a.begin();//iterator可以理解成一种指针变量,a.begin()为a的首元素地址,pointer指向这个地址
//其上等价于a[0]。而a[i]和*(a.begin()+i)一样。
三.vector中常用函数大全
(No.1). _pushback()
push_back()是用来向vector类型容器后添加元素,表达式:
a.push_back(x);//在vector类型a后添加一个元素x。
(No.2). size()
size()用来计算vector中元素个数,如果vector是一个二维数组,可以计算第二维数组元素的多少。表达式:
len=a.size();//计算vector变量a中元素的个数赋值给len。
例如:a中元素为1 2 3 4,则len的值为4.
(No.3). _popback()
pop_back()是用来删除vector的尾元素的,表达式:
a.pop_back();//删除vector类型a的末尾元素.
(No.4). clear()
clear()是用来清空vector中左右元素的,表达式:
a.clear()
cl=a.size();//将vector类型a中元素清零,然后将a的长度赋给cl,则cl为0,即a的长度为0.
暂时函数更新到此。