vector<int> adjList[MAX] 和 vector<int> adjList(MAX)的区别【C++】
vector<int> adjList[MAX]
和 vector<int> adjList(MAX)
是两种不同的定义方式,它们在语义和用途上有明显的区别:
1. vector<int> adjList[MAX]
- 定义方式:这是一个数组,数组的每个元素都是一个
vector<int>
。 - 用途:通常用于邻接表的表示,其中
MAX
是顶点的最大数量。每个顶点对应一个vector<int>
,用于存储与该顶点相邻的其他顶点。 - 示例:
const int MAX = 100; vector<int> adjList[MAX]; adjList[0].push_back(1); // 表示顶点0与顶点1相邻
2. vector<int> adjList(MAX)
- 定义方式:这是一个
vector
,其大小被初始化为MAX
。 - 用途:通常用于创建一个固定大小的
vector
,并初始化其大小为MAX
。这种方式在需要预先分配固定大小的vector
时非常有用。 - 示例:
const int MAX = 100; vector<int> adjList(MAX); adjList[0] = 1; // 设置第0个元素的值为1
总结
vector<int> adjList[MAX]
:定义了一个数组,数组的每个元素是一个vector<int>
,常用于邻接表。vector<int> adjList(MAX)
:定义了一个大小为MAX
的vector
,常用于需要预先分配固定大小的场景。