C++ vector小记

vector是C++STL中的一种容器,是一种向量类型,可以容纳许多类型的数据,因此被称为容器。(可以理解为动态数组,vector 的大小可以根据需要自动增长和缩小,是封装好了的类)

下面我们来看看vector的使用

1.首先是使用vector前需要的头文件 

#incldue<vector>

2.vector的定义:vector<储存的类型>容器名

e.g.        储存int型的值 vector<int>v;//v是容器名(变量名)

              储存double型的值 vector<double>v;

              储存string型的值 vector<string>v;

              储存结构体或者类的值的值 vector<结构体名>v;

当然了,也可以在定义的同时指定初始大小和初始值(注意哈,在变量名后面的括号是小括号)

e.g.        vector<int>v(7);//创建一个包含7个整数的vector,每个值都是默认为0的哈;

              vector<int>v(7,14);//创建一个包含7个整数的vector,每个值都是14;

              也可以初始化包含元素vector<int>v={1,2,3,4};//这里是{}。

3.接下里来解释一下为什么指定初始大小和初始值要用()而不是[ ]

vector<int>v(n);//上面已经讲过用途了

vector<int>v[n];可以理解成为二维数组,定义了一个长度为n的数组,数组的每个元素都是vector类型的变量(这个v[n]可以理解为一维长度是你,这个n需要是已知参数,才算一维长度不变,二维长度可变的矩阵)

vector还有另一种方式表示二维数组vector<vector<int>>v;

(我后面补充了一篇关于vectcr的两种二维数组的理解和表示,可以更好的理解)

4.vector的使用

(1).使用size()返回元素个数

        int a=v.size();//获取vector中的元素数量

(2).push_back( ) / pop_back( )

push_back( ) 向vector的末尾添加一个元素

e.g.        vector<int>v;

              v.push_back(4);

              v.push_back(7);

              相当于a[0]=4,a[1]=7;

              此时,在使用之后才可以默认这是一个变量名为v的数组,v[x]有效,既开辟大小之后才可以使用v[x],如果给vector<int>v(10)初始化,这里初始化为0,v[x]也有效

pop_back( )相当于删除最后一个元素

(3)empty( )返回是否为空

vector<int>v;
cout<<v.empty()<<endl;//输出1
v.push_back(7);
v.push_back(8);
cout<<v.empty()<<endl;//输出0

(4)clear( )清空

vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
cout<<v.size()<<endl;//输出3
v.clear();
cout<<v.size()<<endl;//输出0

注意事项clear()是清空了v里的元素,但不会改变vector的容量并不会清空他所占的内存

但是使用swap()函数可以将vector与一个空的vector进行交换,从而删除vector中的所有元素并释放vector所占用的空间内存,这样做可以最小化vector的容量

(5)front()/back()/begin()/end()

v.front()/v.begin();//返回v的第一个元素

v.back()/v.end();//返回v的最后一个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值