《CI论》· Vector

· · 个人记录

VC总结系列——Vector

目录

零. 附录(先看附录)

一.定义

二.访问

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.

暂时函数更新到此。