Anzeige:
Ergebnis 1 bis 4 von 4

Thema: [C++] Referenzen auf temp(?) Variablen

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.06.2004
    Beiträge
    9

    [C++] Referenzen auf temp(?) Variablen

    Habe mich mal an der c++ implementierung des DFS Algorithmus versucht. Programm läuft soweit und liefert für meine Beispielgraphen das richtige Ergebnis.
    Bin jetzt aber nicht sicher, ob ich die std::vector aus der STL richtig einsetze.
    Laut http://www.sgi.com/tech/stl/Vector.html nimmt std::vector:ush_back als Argument eine const Referenz (void push_back(const T&)).
    Genutzt habe ich vector wie folgt, wobei Kante einfach nur eine selbstgeschriebene Klasse ist, die 2 ints speichert.

    Code:
    std::vector<Kante>* kreis=new std::vector<Kante>;
    kreis->push_back(Kante(*kreisanfang, *kreisende));
    Ist das so sinnvoll, oder lege ich so eine Referenz auf eine temporäre Variable ab und das Ergebnis beim Auslesen ist nur Glückssache?

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Alle Standardcontainer kopieren Elemente die eingefügt werden sollen, egal mit welchen Operationen (insert, push_back, ...).

    Es ist üblicherweise auch sinnvoll, diese Semantik für eigenen Code zu übernehmen, wenn man Argumente als Referenz-auf-Konstant empfängt. Oder, wenn man davon abweicht, sollte dies zumindest auffällig dokumentiert werden.

  3. #3
    Registrierter Benutzer
    Registriert seit
    13.06.2004
    Beiträge
    9
    Ah danke.

    Dachte mir schon sowas in der Richtung, hab aber nichts in der Doku gefunden.

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Zitat Zitat von dusterl
    Genutzt habe ich vector wie folgt, wobei Kante einfach nur eine selbstgeschriebene Klasse ist, die 2 ints speichert.
    Dafür könntest du auch STLs pair nehmen:
    Code:
    typedef std::pair<int,int> Kante;

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •