Я принимаю данные из файла в следующей форме:
3
0 1
0 2
1 0
1 2
2 0
2 1
Здесь 3 - уникальное количество чисел в списке, т.е. 0,1,2.
Я успешно составил список смежности из списка.
O / P:
0 -> 1 2
1 -> 0 2
2 -> 0 1
Используя следующий код
if (input.is_open())
{
cout << "File is Open. \n";
input >> totalnode;
pair<pair<int,int>, pair<int,int>> a;
vector<list<int>>adjlist(totalnode);
while (input >> node1 >> node2)
{
adjlist[node1].push_back(node2);
}
vector<list<int>>::iterator i;
int c = 0;
for ( i = adjlist.begin(); i != adjlist.end(); ++i)
{
cout << c << " -> ";
list<int> li = *i;
list<int>::iterator iter;
for ( iter = li.begin(); iter != li.end(); ++iter)
{
cout << *iter << " ";
}
cout << "\n";
c++;
}
Теперь я хочу составить список смежных пар.
Пример:
0,1 -> (0,2) (1,0) (1,2) (2,0) (2,1)
0,2 -> (0,1) (1,0) (1,2) (2,0) (2,1)
1,0 -> (0,1) (0,2) (1,2) (2,0) (2,1)
Я думаю, я должен использовать это,
vector<pair<int, int>> asd;
или
vector<list<pair<int,int>>> asd;
Как мне сравнить пары? Честно говоря, я понятия не имею, как этого добиться.