vector

注意:vector是一个实现顺序表的类模板 ,在构造一个对象时一定要显示实例化。且使用vector时要包含头文件:#include<vector>。

显示实例化:

一.常用接口

构造函数

传参的几种方式:

①.全缺省。

②.给定插入个数以及要插入的内容。(全顺序表都是一个重复字符)。

eg:

输出的是一个全为1的数组

③.拷贝构造。

遍历

1.\[\]

和string一样,vector重载了\[\],可用于元素的遍历。

2.迭代器(iterator)

reserve

对比string的reserve而言,没有历史包袱,所以 n < capacity时,reserve不会对_capacity和_size产生影响,不会缩容。

resize

改变容器元素个数(即size大小)。

首个参数n是目标size,第二个参数是新增元素的填充值。如果n < size,就删除vector中数据,直至size为n。如果n > size,就进行扩容,直至size为n,且新增元素用第二个参数给的数填充。

insert

在指定位置前插入某个值,首个参数不支持下标,但支持迭代器begin(),end()。所以想要在第n个位置前插入数据,就可以用begin() + n

erase

依旧支持迭代器不支持下标。可删除某个位置的值,也可以删除某个区间的值(不常用)。

支持比大小

不支持流插入流提取

vector的打印具有很多不确定性。

要实现流插入直接用for循环配\[\]。

实现流提取可以用构造函数配for循环

二.二维数组

实现

会实例化两个类,先实例化vector<int>,再实例化vector<vector<int>>。vector<int>代表行空间,vector<vector<int>>代表列空间。

访问

依旧可以使用重载的\[\]对用vector实现的二维数组里的元素进行访问:

第一个\[\]访问vector<vector<int>>中的元素,返回vector<int>的引用,确认好行 。第二个\[\]访问这个vector<int>中的元素,确认好列,返回int的引用,也就是访问的目标元素。

遍历

相关推荐
我变成萤火虫11 天前
反悔贪心(经典题目讲解)
c++·算法·贪心算法·stl·排序算法·反悔贪心
我变成萤火虫12 天前
河南萌新联赛2026第(四)场:南阳理工学院
数据结构·c++·算法·贪心算法·stl·动态规划
峥无13 天前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl
我变成萤火虫14 天前
2026 ICPC沈阳邀请赛Vp补题
数据结构·c++·算法·贪心算法·stl·排序算法·动态规划
程序喵大人15 天前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
我变成萤火虫17 天前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
鱼子星_19 天前
【C++】反向迭代器:反向迭代器的底层认识与模拟实现
开发语言·c++·笔记·stl
lingran__19 天前
C++ STL map 与 set 底层剖析与模拟实现万字详解|基于红黑树,复刻 SGI-STL 泛型复用架构
开发语言·c++·stl·set·map·泛型编程·sgi-stl
我不会插花弄玉22 天前
15.map,set下:AVL树,红黑树和map,set的封装【由浅入深-C++】
c++·stl
ShineWinsu22 天前
对于C++中unordered_map的详细介绍
数据结构·c++·算法·面试·stl·哈希表·unordered_map