我正在创建一个实现邻接表的类,目前在我的类定义中,我初始化了两个向量:
vector<vector<int>> adjList;
vector<int> neighbors;
我声明了两个函数,我计划使用它们来制作它:
bool constructAdjList();
bool insertIntoAdjList(int, int);
我很难理解2D向量的概念。我知道它本质上是由向量构成的向量,但我不清楚如何将新值插入到其中一个“子向量”中。例如,我可以通过以下循环在createAdjList中创建一个空的邻接表:
for (int i = 0; i < numOfValues; i++){
neighbors.push_back(0);
adjList.push_back(neighbors);
neighbors.clear();
}
但是我应该如何在insertIntoAdjList函数中表示将值5 push_back到adjList中的第4个向量呢?
insertIntoAdjList(4, 5);
我知道可以通过输入adjList[4][1]来访问2D向量中的特定值,但是如何将一个值添加到其中呢?
谢谢!
adjList[4][1] = 987
? - Kamstd::unordered_map<int, std::unordered_map<int,int>>
可能更适合你。仅代表个人观点。 - WhozCraig