2013-05-17 1 views
1

Я пытаюсь создать список Adjacency, используя вектор векторной пары, и всякий раз, когда я запускаю код, он перестает работать. На данный момент я пытаюсь добавить первую пару в список Adjacency «AdjList». Есть ли лучший способ или какие-либо изменения для этого?Как сделать список смежности, используя вектор векторной пары в C++?

#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; 
} 
+0

То, что вы должны, вероятно, это вместо того, 'ЬурейеЕ станд :: вектор <станд :: вектор > adjList; ' –

ответ

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;