数据结构漫游记:初识vector

​

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的

passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!

我的博客:yuanManGan

我的专栏:C++入门小馆 C言雅韵集 数据结构漫游记 闲言碎语小记坊

目录

我们之前了解过顺序表,但一般竞赛中我们不会使用它来实现这个数据结构,而是以更简单的结构,cpp中自带的vector类型。

一.什么是vector

vector其实是一个容器类似于string,有些地方把他叫做可变长数组。vector的底层是一个会自动扩容的顺序表。

二.vector类型的创建

使用vector类型时要包含头文件

cpp 复制代码
#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;
}
cpp 复制代码
vector<变量类型>变量名; 

我们看到的前四个都是很常用的定义方式

a1 是个空的顺序表

a2是元素个数为N的可变长数组(存储的int类型)默认初始化为0

a3是元素个数为N的可变长数组默认初始化为1

a4初始化列表的创建方式

vector里面可以放任意类型的数据类型

cpp 复制代码
	vector<string>a5;
	vector<node>a6
	vector<vector<int>>a7;//二维数组

注意下面是创建了一个数组数组里存放的是vector类型。

cpp 复制代码
vector<int>a8[N];//创建一个大小为N的vector数组(二维)

三.vector里面的内置函数

1.size与empty

size在之前学习string时也学习过size在这里也是同样的

cpp 复制代码
#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

cpp 复制代码
#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是清空数组

这里就结束了。完结撒花!

​

相关推荐
杜 硕3 分钟前
从零开始的C++生活——第四讲
开发语言·c++·生活
sunburn-8 分钟前
数据库操作完整教程:从基础到实战
java·数据库·mysql
云和数据.ChenGuang9 分钟前
Python 集合(set)常用函数详解与实战案例
开发语言·python·深度学习·langchain
文丑颜不良啊15 分钟前
LeetCode576~600题目解析
java·leetcode
隔窗听雨眠21 分钟前
从PHP2Shell回望:PHP内核漏洞的二十年演进与AI时代的攻防转折
开发语言·人工智能·php
lisw0524 分钟前
分岔论揭示演化突变密码
开发语言·算法·数学建模
hunteritself25 分钟前
AI 挖出 PHP「致命漏洞」!欧洲政府连夜关站,日本首相紧急喊话
开发语言·人工智能·php
Linux运维技术栈31 分钟前
CVE-2026-91403 高危漏洞预警:Java JSSE 信任链被攻破 全场景修复方案与Linux系统级彻底清理实操
java·linux·安全·jdk·信任链
H.莓飛35 分钟前
【数据结构】快速排序专题
linux·服务器·c语言·数据结构·visual studio
努力实干40 分钟前
Qt/C++ 模块化设计与工程组织
开发语言·c++·qt