
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
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月13日 01时12分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
int 转 CString
2021-05-07
Edit编辑框自动换行与长度
2021-05-07
Java面向对象
2021-05-07
JAVA带标签的break和continue
2021-05-07
Java获取线程基本信息的方法
2021-05-07
vue源码分析(MVVM篇)
2021-05-07
设计模式之组合模式
2021-05-07
(Python学习笔记):字典
2021-05-07
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
2021-05-07
C++并发与多线程(一)
2021-05-07
java一些基本程序
2021-05-07
vue-依赖-点击复制
2021-05-07
LeetCode 116填充每个节点的下一个右侧结点指针
2021-05-07
2021-4-28【PTA】【L2-1 包装机 (25 分)】
2021-05-07
Arduino mega2560+MPU6050利用加速度值控制舵机
2021-05-07
紫书——蛇形填数
2021-05-07
A Guide to Node.js Logging
2021-05-07
webwxbatchgetcontact一个神奇的接口
2021-05-07
【考研英语-基础-简单句】简单句的核心变化_谓语情态
2021-05-07
Jetson AGX Xavier硬件自启动
2021-05-07