C++STL库入门|Vector的使用介绍

Vector的使用介绍

vector使用

vector是一个封装了动态大小数组的顺序容器,可以把vector理解为可以存放任何类型的动态数组

构造函数:

vector():创建一个空vector
vector(int nSize):创建一个元素个数为nSize的vector
vector(int nSize,cong t& t):创建一个元素个数为nSize的vector,且值为t
vector(const vector&):将vector复制给当前vector
vector(begin,end):复制[begin,end)区间内另一个数组的元素给vector

常用函数:

  1. 增加元素
    void push_back(elem):在容器最后添加一个数据
    iterator insert(iterator it,elem):在容器的it位置添加elem(容器下标从0开始)

  2. 删除元素
    iterator erase(iterator it):删除容器中it位置的元素
    iterator erase(first,last):删除容器中[first,last)元素
    void pop_back():删除容器中最后一个元素
    void clear():清空容器中所有元素

  3. 容器相关信息
    bool empty():判断容器是否为空
    int size():返回容器当前(实际)大小
    int capacity():返回容器分配的大小

  4. 其他操作
    void swap(vector &):与另一个vector交换数据
    void assign(int n,elem):设置容器中第n个元素为x
    resize():改变当前容器的大小(包括size和capacity)

  5. 注意:
    vector其实也可以理解成一个变长的数组,因此可以通过下标来访问对应的元素,但是不能通过下标来修改对应的元素,当然vector的访问也可以通过迭代器来进行访问

二维vector的定义的两种方式:
vector a[maxn]:第一维大小(即行)是固定的,推荐使用这种方法,不容易出错可以用这个方法来实现图的邻接表存储
vector<vector > a:二维数组的行和列都是不固定的,可以使用a.resize()来定义行,同时也可以使用构造函数来确定行和列

const int maxn=1000;
vector<int> a1[maxn];	//一个固定行数为maxn的vector,其中每一个vector都可以存vector,因此是二维的
vector<vector<int> > a2;
a2.resize(maxn);	//固定了vector的行数为maxn
vector<vector<int> > a3(maxn,vector<int> (10,0));   //maxn行10列,且初始值都为0

常用用途

  1. 用于存储不确定大小的数据,可以节省空间,但是时间比数组消耗的多

  2. 二维vector可以用来实现图的邻接表存储,从而避免使用指针造成错误

OJ中的Vector使用

以下题目的链接均在Virtual Judge平台中,Virtual Judge是集成了多个OJ的一个平台,可以在上面做很多其他OJ的题目,读者也可以自行搜索相应OJ平台来提交代码

以下题目中HDU 1612和HDU 4858使用了二维vector

HDU 4841 圆桌问题

POJ 3750 小孩报数问题

HDU 1612 The Blocks Problem

HDU 4858 项目管理

UVA 484 The Department of Redundancy Department

题解将在后续博客中介绍,敬请期待啦!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值