Wann ist es gut, std :: pair zu verwenden?

8

Mein Eindruck ist, dass es immer besser ist, meine eigene Struktur zu definieren, so dass ich anstelle von first und second sinnvolle Feldnamen verwenden kann.

Eine Stelle, an der der Standard std::pair verwendet, ist der Zugriff auf Elemente von std::map . first ist der Schlüssel und second der Wert. Wäre es nicht viel besser, eine bestimmte Vorlage für key_value_pair zu haben, und verweisen Sie auf ihre Felder als key und value anstelle von first und second ? Es scheint mir, dass es Code wesentlich besser lesbar machen würde.

    
Rémi 29.10.2013, 10:30
quelle

1 Antwort

7

Normalerweise verwende ich Paare (und Tupel), wenn ich ein lokales Paket mit zwei oder mehr Objekten brauche.

Der primäre Anwendungsfall ist der Rückgabetyp einer Funktion: C ++ erlaubt nicht die Rückgabe mehrerer Werte, erlaubt aber die Rückgabe einer Struktur mit mehreren Feldern. Anstatt Ausgabeparameter zu verwenden, bevorzuge ich ein Paar oder Tupel.

Der zweite Anwendungsfall ist die Ad-hoc-Speicherung von Elementen. zum Beispiel um automatisch operator< für

zu erzeugen %Vor%

Sie können operator< auf diese Weise schreiben:

%Vor%

es erzeugt automatisch eine korrekte lexikographische Reihenfolge (so viele Leute vermasseln diese Operatoren ...).

    
Matthieu M. 29.10.2013, 10:47
quelle

Tags und Links