1

我正在尝试使用向量对的向量创建邻接列表,并且每当我运行代码时它都会停止工作。现在,我只是想在邻接列表“AdjList”中添加第一对。有没有更好的方法或任何修改来做到这一点?

#include <iostream>
#include <vector>
using namespace std;
typedef pair<int, int> ii;
typedef vector<ii> vii;
vector <vii> AdjList;

int main()
{
    ii v= make_pair(5,4);
    AdjList[0][0]=v;
    cout << v.first<< endl;
}
4

2 回答 2

2

您正在为空向量分配一个值:

AdjList[0][0] = v; // Problematic

尝试使用std::vector::push_back或调整两个嵌套向量的大小。

std::array如果您知道图形的大小,另一种方法是使用:

const int N = 10;

std::array<std::array<int, N>, N>  AdjList;

...

AdjList[0][0] = 1;
于 2013-05-17T19:00:21.770 回答
0

你最好使用std::setor std::unordered_set

std::set<std::pair<int,int>> adj_list;
adj_list.emplace(0,0);
adj_list.emplace(0,1);
for(auto& p:adj_list)
    std::cout<<p.first<<"-"<<p.second<<std::endl;
于 2019-03-05T08:44:20.777 回答