quindi sto creando una classe che implementa un elenco di adiacenze. Attualmente nella mia definizione di una classe ho inizializzato due vettori:Inserimento di elementi nel vettore 2D
vector<vector<int>> adjList;
vector<int> neighbors;
e ho dichiarato due funzioni che ho intenzione di usare per farlo:
bool constructAdjList();
bool insertIntoAdjList(int, int);
Sta diventando difficile confezionamento mia testa intorno vettori 2D. Capisco che sia essenzialmente un vettore di vettori, ma sono confuso su come inserire un nuovo valore in uno dei "subvettori". Ad esempio, sono in grado di creare un lista di adiacenza in createAdjList che è vuota con il seguente ciclo:
for (int i = 0; i < numOfValues; i++){
neighbors.push_back(0);
adjList.push_back(neighbors);
neighbors.clear();
}
Ma come posso dire, push_back il valore 5 alla 4 ° vettore in adjList, che sarebbe rappresentata in la mia funzione insertIntoAdjList come
insertIntoAdjList(4, 5);
so di poter accedere ad un valore specifico in un vettore 2D dicendo adjList [4] [1], ma come posso spingere uno su di esso?
Grazie!
Non capisco, non puoi farlo: 'adjList [4] [1] = 987'? – Kam
Funziona se ho già un valore nella posizione [4] [1], ma se voglio effettivamente spingere un valore alla fine del vettore 4, devo in qualche modo push_back giusto? –
Penso che un 'std :: unordered_map>' possa servire meglio. solo la mia opinione. –
WhozCraig