vector介绍与使用
发布日期:2021-05-07 22:56:05 浏览次数:21 分类:精选文章

本文共 1711 字,大约阅读时间需要 5 分钟。

vector概念

  • vector可以简单理解为一个数组,但又不仅仅是一个数组,数组的大小一般都是固定的,但vector可以动态增长,并且vector也有许多与stl其他容器一致的接口。

vector的创建

使用vector要包含vector头文件,vector中可以存储任意类型,在创建变量时就要指定存储类型。

#include 
#include
#include
//使用vector必须要包含头文件using namespace std;int main() { vector
v;//无参构造,存储类型为int型 vector
v1(3, 0);//舒适化3个0 vector
v2(v1);//拷贝构造 vector
v3(v1.begin(), v2.begin());//迭代器构造 vector
v4;//无参构造,存储类型为string型 return 0;}

vector的遍历

vector有三种常见的遍历方式:

int main() {	vector
v1(3, 0);//舒适化3个0 //第一种,通过下标访问: for (size_t i = 0; i < v1.size(); i++) { cout << v1[i] << " "; } cout << endl; //第二种,范围for循环 for (int num : v1) { cout << num << " "; } cout << endl; //第三种,迭代器访问 vector
::iterator it = v1.begin(); while (it != v1.end()) { cout << *it << " "; it++; } cout << endl; return 0;}

在这里插入图片描述

第一种方式,vector实际上是一个类,但是为了使用习惯,C++在类里面重载了[]运算符,使其能像数组一样通过下标访问元素。

第二种方式,范围for实际上在底层还是转换为迭代器来遍历数组元素。
第三种方式,这种访问方式是STL库所有容器通用的访问方式,每个容器都可以通过对应的迭代器访问。

vector常用接口

迭代器接口

vector v;v.begin()//返回v的第一个元素的迭代器v.end()//返回v的最后一个位置的下一个位置的迭代器v.rbegin()//反向迭代器,返回v的最后一个位置的迭代器v.rend()//返回v的起始位置的前一个迭代器

vector空间相关接口

vector v;v.size()//返回v当前元素个数v.capacity()//返回v的空间大小v.empty()//若v为空,返回true,否则返回falsev.resize()//通过该函数改变v的有效元素个数//v.resize(4,2)//将v的有效元素个数置为4,若原来元素个数大于4,则只保留4个元素,//若原来元素个数小于4,则增加到4个,增加的元素默认值为2.v.reverse()//将v的空间扩容至指定数,只可以扩大容量,不可以缩小容量!

vector增删查改接口

vector v;v.push_back()//尾插一个数据v.pop_back()//尾删一个数据v.erase(v.begin())//删除指定位置数据,传入数据为迭代器,可删除单个位置,也可删除一段区间。//注意该函数可能会使迭代器失效,使用时要多加注意。find()//vector没有内置的find函数,只能使用全局函数。//使用该函数要添加
头文件v.insert()//指定位置插入数据v.swap()//交换两个vector
上一篇:C++STL容器----List
下一篇:深入理解Linux信号

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月13日 01时12分54秒