Witam. Mam tak zadeklarowany wektor list :
vector<list<Edge> > AdjList;
Jaki jest sposób odwołania się do poszczególnych elementów danej listy będącej konkretną składową tego wektora?
Pozdrawiam.
Witam. Mam tak zadeklarowany wektor list :
vector<list<Edge> > AdjList;
Jaki jest sposób odwołania się do poszczególnych elementów danej listy będącej konkretną składową tego wektora?
Pozdrawiam.
for(vector<list<Edge> >::iterator y=AdjList.begin();y!=AdjList.end();++y)
{
for(list<Edge>::iterator x=y->begin();x!=y->end();++x)
{
cout<<x->weight<<' ';
}
cout<<endl;
}
Dziękuję i pozdrawiam :)
Ten sam program - inny problem. Na podstawie listy sąsiedztwa mam stworzyć tablicę krawędzi. Jest to u mnie tablica struktur typu Edge2:
struct Edge2
{
int v1;
int v2;
int weight;
};
Z macierzą sąsiedztwa nie ma problemu - dzięki odpowiednim iteratorom możemy wyeliminować przypadek powtórzenia krawędzi(zarówno w macierzy i liście każda krawędź występuje dwa razy (graf nieskierowany)). Jak tutaj wyeliminować przypadek powtórnego wystąpienia tej samej krawędzi w tablicy? Pozdrawiam.
Skoro nie masz problemu z macierzą sąsiedztwa to jaki problem z tablicą krawędzi?
Przecież macierz sąsiedztwa dotyczy tej tablicy krawędzi.
Program musi mieć dwie opcje tworzenia tablicy krawędzi, na podstawie macierzy i na podstawie listy muszą być dwie osobne funkcje. (warunki zadania)