IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++中的可变长数组(vector) -> 正文阅读

[C++知识库]C++中的可变长数组(vector)

变长数组vector

vector译为向量,一般来说也叫变长数组,也就是长度可以任意变化的数组,有些题目需要开很多数组,往往造成内存超限,使用vector简单方便,还可节省空间。

头文件

vector的头文件是using namespace std;

如何定义

定义格式为vector<type_name> name;
其中的type_name可以是数据类型,像int,double,char,string或者是vector本身这样的
例:

vector<int> a;                 //定义了一个整型不定长数组a     
vector<double> a;   //定义了一个双精度浮点型不定长数组score
vector<node> a;          //定义了一个结构体类型的不定长数组stu

注意事项

如果type_name也是一个vector的容器,那么定义时需要在两个>符号之间加一个空格,不然编译器会误认为是位运算的右移符号>>,例如:

vector<vector<int> > a;  //定义了一个两个维度都可变的二维整型数组a,两个“>”间有一个空格 

如何访问

访问vector中的元素一般使用下标访问
下标访问:对于vector<type_name>a,可以用a[i]来访问,其中,0≤i≤a.size() – 1,a.size()表示vector中元素的个数。

可变长数组常用函数

当然啦,C++的设计者也十分的良心,为我们设计了许多好用的函数,常用函数如下

插入

push_back();
解释:将括号里的值压入变量的最后,时间复杂度是O(1).
举个例子:

vector<int>a;
int x;
cin>>x;
a.push_back(x);

在变长数组赋值前,是不能使用下标来赋值的,只能一位一位的压入,不能a[0]=x这样赋值。

取元素个数

size();
解释:如果是一维数组,size()用来获得vector中元素个数;如果是二维数组,size()用来获得vector中第二维的元素个数,时间复杂度为O(1)。

删除

pop_back()
解释:用来删除vector中的尾元素。时间复杂度为O(1)

清空

clear()
解释:用来清空vector中的所有元素。时间复杂度为O(n)

插入

insert()
解释:insert(it, x)用来向vector任意迭代器it处插入元素x。时间复杂度为O(n)。
还有一种写法,但是不常见,是insert(it ,x,y),并不是插入x和y而是插入x个y。

删除指定元素

erase()
解释:erase()用来删除vector中的元素,有两种用法,一是erase(it),删除迭代器it处的单个元素;二是erase(first, last),删除左开右闭区间[first, last) 内的所有元素。

关于vector这次就讲到这里,如果你觉得以上内容对你有帮助的话,被忘了点个赞再走啊 QAQ

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:22:12  更:2022-10-08 20:25:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:38:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码