嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的
passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let’s go!我的博客:yuanManGan
我的专栏:C++入门小馆 C言雅韵集 数据结构漫游记 闲言碎语小记坊
目录
- 一.什么是vector
- 二.vector类型的创建
- 三.vector里面的内置函数
- 1.size与empty
- 2.迭代器begin和end
- 3.push_back与pop_back
- 4.resize和clear
我们之前了解过顺序表,但一般竞赛中我们不会使用它来实现这个数据结构,而是以更简单的结构,cpp中自带的vector类型。
一.什么是vector
vector其实是一个容器类似于string,有些地方把他叫做可变长数组。vector的底层是一个会自动扩容的顺序表。
二.vector类型的创建
使用vector类型时要包含头文件
#include<vector>
struct node
{
string a;
int b;
};
const int N =10;
int main()
{
vector<int>a1;//定义了一个叫a1的动态数组
vector<int>a2(N);//定义了一个元素个数为N的数组
//默认初始化为0
vector<int>a3(N,1);//定义了一个元素个数为N的数组
//并将其初始化为1
vector<int>a4{ 1, 2, 3, 4, 5};
//跟静态数组类似
vector<string>a5;
vector<node>a6
vector<vector<int>>a7;//二维数组
vector<int>a8[N];//创建一个大小为N的vector数组(二维)
return 0;
}
vector<变量类型>变量名;
我们看到的前四个都是很常用的定义方式
a1 是个空的顺序表
a2是元素个数为N的可变长数组(存储的int类型)默认初始化为0
a3是元素个数为N的可变长数组默认初始化为1
a4初始化列表的创建方式
vector里面可以放任意类型的数据类型
vector<string>a5;
vector<node>a6
vector<vector<int>>a7;//二维数组
注意下面是创建了一个数组数组里存放的是vector类型。
vector<int>a8[N];//创建一个大小为N的vector数组(二维)
三.vector里面的内置函数
1.size与empty
size在之前学习string时也学习过size在这里也是同样的
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int>a1;
vector<int>a2(5);
cout << a1.size() << endl;
cout << a2.size() << endl;
return 0;
}
这结果显然对的。
我们同时还可以用size()来遍历vector
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int>a(5);
for(int i = 0; i < a.size(); i++)
{
a[i] = i;
}
for(auto e: a)
{
cout << e << " ";
}
cout << endl;
return 0;
}
而empty是检查vector是否为空,返回的是bool类型的值,为空返回true不为空返回false
同时我们也可以用范围for来遍历vector
2.迭代器begin和end
这里的用法和string大差不差所以没什么好讲的
3.push_back与pop_back
这些在string哪里也介绍的很清楚的也简单示范一下
这里是print函数的实现
4.resize和clear
resize是调整数组长度
而cleart是清空数组
这里就结束了。完结撒花!