所以我正在创建一个实现邻接列表的类.目前在我的类定义中我初始化了两个向量:
vector<vector<int>> adjList;
vector<int> neighbors;
Run Code Online (Sandbox Code Playgroud)
我宣布了两个我计划用来制作的功能:
bool constructAdjList();
bool insertIntoAdjList(int, int);
Run Code Online (Sandbox Code Playgroud)
围绕2D矢量缠绕我的头部变得越来越困难.我知道它本质上是一个向量的向量,但我对如何将一个新值插入其中一个"子向量"感到困惑.例如,我能够在createAdjList中创建一个空的邻接列表,其中包含以下循环:
for (int i = 0; i < numOfValues; i++){
neighbors.push_back(0);
adjList.push_back(neighbors);
neighbors.clear();
}
Run Code Online (Sandbox Code Playgroud)
但是我怎么说,将值5推送到adjList中的第4个向量,这将在我的insertIntoAdjList函数中表示为
insertIntoAdjList(4, 5);
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过说adjList [4] [1]来访问2D向量中的特定值,但是如何将其推入它?
谢谢!
Kam*_*Kam 12
要推动作为另一个向量的元素的向量,您只需执行此操作
adjList[x].push_back();
Run Code Online (Sandbox Code Playgroud)
小智 5
如果最初向量中没有任何值 - 您可以将值推入一个向量,然后将该向量推入 2D 向量。例如:
vector< vector<int> > vt1;
vector<int> vt2;
vt2.push_back(value);
vt1.push_back(vt2);
Run Code Online (Sandbox Code Playgroud)
如果你的向量已经填充然后 -
vt1[index].push_back(value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23633 次 |
| 最近记录: |