STL(Standard Template Library)介绍-新手入门!!!(vector的使用方法!)

目录

 

1.1  vector的常见用法详解

1.vector的定义:

2.vector内的元素访问:

3.vector常用函数解析:


1.1  vector的常见用法详解

前言:

vector翻译为向量,不过我们一般将其称作变长数组。

若要使用vector,需要添加vector头文件#include<vector>以及一句“using namespace std;

1.vector的定义:

vector<类型> 变量名;

vector<typename> name;

typename可以是任意类型(诸如int double char node),也可以是STL标准容器(诸如vector,set,queue)。

需要注意的是,如果typename也是一个STL容器,定义的时候要记得在>>符号之间,加上空格!

example:

vector<vector<int> > name;    //之间要加空格!

一个普通的vector类似与一维可变长数组,但此处,typename类型为vector的则可以看成二维可变长数组。

定义vector数组的方式(这个与二维可变长数组有所不同)

example:

vector<typename> Arryname[arraySize];

vector<int> vi[100];

这个只有一个维度可以边长,另一个维度并不能改变长度!

2.vector内的元素访问:

(1)通过下标访问:

example:

vector<typename> vi;

vi[index] like vi[0] or vi[1]

(2)通过迭代器访问:

迭代器(iterator)可以理解为一种类似指针的东西,定义是:

vector<typename>::iterator it;

vector<typename>::iterator it = vi.begin();

可以理解为*(it + 0) = vi[0];

也就是说vi[i]*(vi.bein()+i)等价

在STL中,只有vector和string中,才允许使用vi,begin()+3这种迭代器加整数的写法!

3.vector常用函数解析:

(1)push_back()(vi.push_back(i))

在vector后面加一个数,时间复杂度是O(1)

(2)pop_back()

有加入就有删除,pop_back()表示删除vector的尾元素,时间复杂度是O(1)。

(3)size()

size()用来获取vector中的元素个数,时间复杂度为O(1)。size()返回的是unsigned的类型,不过一般来说用%d不会出很大的问题,这一点对STL容器都是一样的!

(4)clear()

clear()用来清空vector中的所有元素,时间复杂度为O(N),其中N为vector中元素的个数。

(5)insert()

insert(it,x)用来在vector中任意迭代器it处插入一个元素,时间复杂度是O(N)。

(6)erase()

erase()有两种用法,一种是单个删除,另一种是区间删除。

example:

erase(it)即删除it处的数。

erase(A,B)即删除[A,B)范围内数!

(1)储存数据

vector本身可以用作数组,而且在一些元素个数不确定的场合可以很好的节省空间。

有些场合需要根据一些条件把部分数据输出在同一行,数据中间用空格隔开。由于输出的数据个数不确定,为了更方便地处理最后一个满足条件的数据后面不输出额外的空间,可以先用vector记录所有需要的数据,然后一次性输出!

(2)用邻接链表存储图

来个云朵放松一下~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值