MENU

STL的神奇容器之vector

April 4, 2020 • 算法

前言:

STL是C++中的标准库之一,主要由迭代器,算法,容器,仿函数,内存配置器和配接器留部分组成,可以帮助程序员完成许多功能完善,形式多样的程序,而这在ACM竞赛中,STL也因此成为了AC利器

我们这几篇博文都主要讲解一下STL的容器:

vector简介

vector是向量的意思,这个容器和Python中的list如出一辙,都是“可以根据存储数据的长度而改变的数组”,在竞赛中,有时候会需要使用到比较大的数组,而这样会超出内存限制(全局变量int可以开到1e7左右,char可以开到1e6左右),而使用vector则可以完美的解决这个问题,偶尔还可以节约空间

使用方法

//引入头文件
#include <vector>
using namespace std;

//定义vector
vector<typename>name;
//typename可以是任何基本类型

vector的访问

访问vector中的元素一般有两种方式

  1. 下标访问
  2. 迭代器访问(使用较少,参考其他STL容器)

vector的常用函数

  1. push_back()可以用来在vector后面添加一个元素,时间复杂度为O(1);
  2. size()如果是一位数组可以获取vector中元素的个数,如果是二维数组,可以用来获取vector中二维数组的元素个数;
  3. pop_back()用来删除vector的尾元素,时间复杂度为O(1);
  4. clear()用来清空vector中的所有元素,时间复杂度为O(n),其中n为vector中的元素个数;
  5. insert(it,x)可用来向vector任意迭代器it中插入一个元素x,时间复杂度O(n);
  6. erase()用来删除vector中的元素,有两种用法,一种是erase(it),另一种是erase(first,last),删除左闭右开区间中的所有元素
作者:NorthCity1984
出处:https://grimoire.cn/algorithm/stl-vector.html
版权:本文《STL的神奇容器之vector》版权归作者所有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任