C++STL之VECTOR用法及实战(pat测试)

本文介绍了C++ STL中的vector,包括其作为变长数组的特性、何时使用、定义方式、元素访问、常用函数。并结合PAT考试中的例题,展示了如何使用vector存储邻接表来解决实际问题。内容涵盖vector的push_back、pop_back、size等函数的使用,以及迭代器访问。文章最后预告了vector在存储图方面的应用。
摘要由CSDN通过智能技术生成

最近作者在刷pat,俗话说,学到能教人的程度才算完全掌握,教人等于输出,教的不对肯定是自己掌握不牢固,也就是内在算法不对。写这篇博客的目的一方面在于复习自己所学过的知识,整理下方便以后再次学习,作者水平很菜,欢迎大佬们纠正。

vector是什么?什么时候用?

  1. vector翻译为向量, 但是在编程中我觉得变长数组更加贴切,也就是长度根据需要自动变化的数组。
  2. 在考试过程中,有时会碰到用普通数组超内存的情况,就需要vector
  3. 用邻接表的形式存储图(未完待续)

vector的定义

1.单独定义一个vector
数据类型 typename, vector名称 name;

vector<typename> name; //长度可变的一维动态数组

当然作为一个容器(什么是容器,就像碗里面放水一样,vector是碗,typename是水,当然也可以放米饭什么的),数据类型就可以放int、double、char、结构体等等,甚至你可以放他本身——大碗里放了个小碗。。。

vector<vector<int> > name; //“>” “>”之间要加空格,为了和iostream中的>>流做区分

这就成了一个两个维度都没定义的二维动态数组。灵魂画图,不喜见谅==。
在这里插入图片描述

vector<int> name[100];

很多小伙伴看到过这种写法,这种写法意思是其中一维用定义好长度为100的vector数组,另一维为长度动态变化的vector数组,vector中存int类型的数据。
在这里插入图片描述

vector内元素的访问

  1. 下标访问
    与一般数组访问一样,对一个定义为vector vi的vector容器来说,访问vi[index]即可,index为0 ~ vi.size() - 1。
    二维访问,对于一个定义为vector name[100]的容器来说,访问vi[x][y]即可,x为长度确定的数组下标,y为长度可变的vector的下标。
  2. 迭代器访问
    迭代器可以理解为一种类似指针的东西,其定义:
vector<typename>::iterator it;
	其中it就是迭代器的变量名,我们可以通过*it来访问vector内的元素,e.g.
#include <cstdio>
#include <vector>
using namespace std;
int main()
{
   
	vector<int> vi;
	for(int i = 1; i <= 5; i++)
	{
   
		vi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值