2016-03-20 17 views
0

Ich habe eine Frage zu Adjazenzlisten. Dies ist eine Beispielliste, die ich verwende.Elemente in eine Adjazenzliste aufnehmen

enter image description here

In Code (C++), ich bin die Umsetzung dieses als Vektor von Listen von einigem allgemeinen Elemente. Also vector<list<element>>. In diesem Fall sind die Elemente A, C, D, H, K, L, N alle in einem Vektor. Meine Frage ist ein bestimmtes Element. Angenommen, ich verwende eine for-Schleife, um den Vektor adjList zu durchlaufen. Um ein Element aus einem Vektor zu erhalten, würden Sie *vector name*[i] sagen und das Element selbst erhalten. Aber was macht es, wenn das Element im Vektor der Anfang einer Liste ist? Sagen wir, ich möchte nur das Element . Um das zu bekommen, sage ich adjList[3]. Würde das nur greifen? Oder würde sagen, dass die ganze Liste, die bei beginnt, greifen? Ich will nicht die ganze Liste, ich will nur . Wenn es die ganze Liste ergreift, wie würde ich es bekommen, nur das eine Element zu ergreifen, das ich will? Kann mir jemand erklären helfen?

+0

Ist das ein 'std :: vector' und eine' std :: list'? –

+0

Ja, sie sind der Standardvektor und die Liste. – GenericUser01

Antwort

1

Wie Sie selbst schreiben, haben Sie eine vector<list<element>>. Das bedeutet, dass adjList[i] Ihnen eine Liste geben wird. Ihre A, C, D Elemente wie adjList[i].front() oder verbosely zugegriffen,

list<element> l = adjList[i]; 
element D = l.front(); 

Letzteres kann nützlich sein, wenn Sie brauchen, um mit dem Rest der Liste zu arbeiten.

+0

Okay, das macht Sinn. Ich war mir nicht sicher, ob es mir eine Liste geben würde oder nicht, aber jetzt verstehe ich. Danke, dass du das für mich geklärt hast. – GenericUser01

Verwandte Themen