发布时间:2023-02-16 文章分类:编程知识 投稿人:李佳 字号: 默认 | | 超大 打印

介绍

  vector(矢量; 向量),vector是C++标准模板库(STL)中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

  vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值,它的一个容器中的所有对象都必须是同一种类型的。

  vector 是一个类模板。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们可以定义保存 string 对象的 vector,或保存 int 值的 vector,又或是保存自定义的类类型对象的 vector。vector 不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector 类型的每一种都指定了其保存元素的类型。

用法

  在C++中,vector是个常用的容器,一下是它的具体用法

vector<int> v(n,i); //建立一个长度为n的一维动态数组v,初始每个元素都赋值为i
vector<vector<int> > ve; //建立一个二维动态数组ve(特别注意:'>'和'>'之间有一个空格,如果不打,会被认为是位移运算而报错)
v.push_back(a); //将a元素放在v数组的末尾,且数组长度加1
v.begin(); //返回数组v的首元素
v.end(); //返回数组v的末端元素的下一个
v.size(); //返回数组v的长度
v.erase(a); //删除a位置的数据,并传回下一个数据的位置
v.resize(n,m); //重定义v的长度为n,若n小于原数组的长度,就删除多余元素,若n大于原数组的长度,则将多出来的部分赋值为m
vector<int>::iterator it; //建立一个叫it的迭代器

  同时,在使用vector是需要用特点的头文件

#include<vector> //使用vector的特定头文件,虽然我更喜欢用万能头

优点

  动态数组可以随时调整数组大小,并且提供额外的方法增加、减小数组中的元素,相对于数组十分的高效。

缺点

  运行速度与数组相比较慢。