C++ 标准库类型vector的初始化以及基本操作

标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。因为vector“容纳着”其他对象,所以它也常被称作容器(container).要使用vector,必须包含适当的头文件。

#include<vector>
using std::vector

C++语言既有类模板(class template),也有函数模板,其中vector是一个类模板。

模板本身不是类或者函数,相反可以将模板看做编译器生成类或者函数编写的一份说明。编译器根据模板创建类或者函数的过程称为实例化(instantitation),当使用模板时,需要指出编译器应把类或函数实例化成何种类型。

对于类模板来说,我们通过提供一些额外信息来指定模板到底实例化成什么样的类型,需要提供哪些信息有模板决定。提供信息的方式总是这样:即在模板名字后面跟一对尖括号,在尖括号内放上信息。如

vector<int> vec;                //vec保存int类型的对象
vector<string> vstr;            //vstr保存string类型的对象
vector<vector<string>> file;    //该向量的元素是vector对象

1.定义和初始化vector对象

vector<T> v1;            //v1是一个空vector,它潜在的元素是T类型的,执行默认初始化(构造函数)
vector<T> v2(v1);        //v2中包含v1多有元素的副本
vector<T> v2 = v1;       //等价于v2(v1),v2中包含v1多有元素的副本
vector<T> v3(n,val);     //v3包含了n个重复的元素,每个元素的值都是val
vector<T> v4(n);         //v4包含了n个重复地执行了值初始化的对象
vector<T> v5{a,b,c...};  //v5包含了初始值个数的元素,每个元素被赋予相应的初始值
vector<T> v5={a,b,c...}; //等价于v5{a,b,c...}

2.向vector对象中添加元素

vector 的成员函数push_back用于向其对象中添加元素

vector<int> v1;           //空vector对象
for(int i=0; i!=100; ++i)
    v.push_back(i);       //以次把整数值放到v1的尾端,循环结束后v1有100个元素,0-99

 

3.vector对象的常见操作

v.empty()            如果v不含有任何元素返回真;否则返回假
v.size()             返回v中元素的个数
v.push_back(t)       向v的尾端添加一个值为t的元素
v[n]                 返回v中第n个位置上元素的引用
v1 = v2              用v2中元素的拷贝替换V1中的元素
v1 = {a,b,c...}      用列表中元素的拷贝替换v1中的元素
v1 == v2             v1和v2相等当且仅当他们的元素数量相等且对应位置的元素值都相等
v1 != v2
<, <=, >, >=         顾名思义,以字典序进行比较

注意:不能用下标形式添加元素

            只能对确知已存在的元素执行下标操作!

迭代器:(具体详解见迭代器(iterator))

//b表示v的第一个元素,e表示v尾元素的下一个位置
auto b=v.begin(), e=v.end();

4.vector类的成员函数以及STL标准库算法

未完待续...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值