#include <iostream>
#include <vector>
using namespace std;
void addEdge( vector<vector<int> > adj, int, int);
void print_graph(vector<vector<int> > adj);
int main()
{
vector<vector<int> > adj(4);
addEdge(adj,1,2); // edge from node 1 to node 2
addEdge(adj,1,3);
addEdge(adj,1,4);
addEdge(adj,2,3);
addEdge(adj,3,4);
print_graph(adj);
return 0;
}
void addEdge(vector<vector<int> > adj, int u , int v)
{
adj[u].push_back(v);
}
void print_graph( vector<vector<int> > adj)
{
for( int i = 0; i < adj.size() ; i++ )
{
for( int j = 0 ; j < adj[i].size(); j++ )
{
cout<< i+1 << " , " << cout<< adj[i][j]<<endl;
}
}
}
我已经编写了读取图形并打印它的代码。
在此之前,我曾经使用
vector<int>adj[5];
但有人告诉我,使用
`vector<vector<int> > adj` or `list<list<int> > adj`
我试过了,但现在我得到的是无输出。 (更新)
谁能帮我使用vector of vector ??也请帮助list of list。
最佳答案
要使用 vector
的 vector
,你可以这样写
std::vector<std::vector<int>> adj(5); // Note: round parentheses
这是可行的,因为标准 vector 有一个构造函数,它接受请求的大小作为参数并默认初始化所有元素。
作为 adj
vector 的 vector ,adj
的元素将被初始化为空 vector ,稍后您可以用 push_back
填充它。
关于c++ - 如何使用 vector 的 vector 来读取图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43153749/