本篇文章专门汇总特别需要注意的数据结构,将说明每种数据结构的引入和具体用法。
向量类
要声明的头文件:<vector>
1. int v0[105]、
vector<int> v1 、
vector<int> v2[105]、
vector<vector<int>> v3(假设输入数据量最大就是100)
v0是一位数组,声明大小是105,适合用在:
(1)用v1[0]~v1[99]来访问
(2)用v1[1]~v1[100]来访问
(3)已知数组的大小是个常量,不用到输入才知道(例题:1012里的node的成员采用了数组)
v1是一维数组,没有声明大小,适合用在:
(1)v1.resize(105),然后后面用v1[1]~v1[100]来访问
(2)v1.push_back(a),然后后面用v1[0]~v1[99]来访问
v2相当于二维数组,第一维的大小是105,适合用来作为邻接表结构的图存储:
假如是有向图,v2[a].push_back(b),也就是说a到b的边
假如是无向图,v2[a].push_back(b); v2[b].push_back(a);,也就是说要存双向的边
例题: