C++基础的不能再基础的学习笔记——标准库类型vector(基础)

vector类模板

vector表示相同对象的集合,每个对象都有一个索引,又成之为容器

vector不是一种类型,而是一个类模板。顾名思义,模板本身不是一个类或函数,但根据提供类型的不同,可以生成不同类型的类或函数,这一过程叫做实例化

因此,在使用vector模板时,我们要给出对象的类型。

#include <vector>
using namespace std;

vector<int> a;             //对象为int类型
vector<vector<string>> s;  //对象为vector对象
一、定义和初始化vector对象
1. 普通初始化
vector<int> a1;      //a1为空
//以下两句等价
vector<int> a2 = a1;
vector<int> a3(a2);
2. 列表初始化
vector<string> s{};

//以下两句等价
vector<string> s1 = { "fancy", "love", "you" };
vector<string> s2{ "fancy", "love", "you" };
3. 值初始化
vector<int> a1(10,5);           //vector对象内容为105
vector<string> s1(5,"fancy");   //vector对象内容为5个fancy
vector<string> s1(5);           //vector对象为5个,会调用对象的默认构造函数

要注意( )和{ }的区别哦~

二、向vector对象中添加元素

在实际应用中,当vector对象所有元素值都一样时,才进行初始化;否则,将vector对象定义为空,在实际运行中添加元素(由于vector能在运行中高效快速地添加元素)。

vector提供了push_back( name )函数使我们添加元素。顾名思义,就是将元素压入 vector对象的尾端

vector<int> num;
for (int i = 0; i < 100; ++i)
    num.push_back(i);

for (auto c : num)
    cout << c << ' ';
cout << endl << endl;

值得注意的是,在使用范围for循环时,不可改变遍历序列的大小(即不能插入和删除元素)。这是因为在范围for循环开始时,已经设定好了遍历序列的头尾两端,若进行插入和删除,会使得循环无法正常运行。

三、其他vector操作
1.访问元素

同string类型一样可根据范围for循环下标访问。

但是我们要指出的是,下标只可访问存在的元素,因此不能利用下标添加元素

2.empty( )和size( )

同string类型一样,值得注意的是vector对象中size( )的返回值类型为 vector :: size_type。

3.比较vector对象

同string类型一样,前提是vector对象中的元素可比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值