2016-04-21 15 views
-2

Ich möchte eine Datenstruktur erstellen, um IP-Pakete effizient zu speichern und abzurufen. Ich muss vier Tupel (IP-Adressen und Portnummern) als Schlüssel für die Datenstruktur verwenden. Ich habe gesucht und ich finde Kartendatenstruktur, aber es scheint, dass es nicht auf vier Tupel als Schlüssel suchen kann, also entscheide ich, IP-Adressen und Portnummern in eine Zeichenfolge oder einen anderen Wert zu serialisieren und dann als Schlüssel für die Kartendatenstruktur zu verwenden .Wie erstellt man einen vier Tupel (IP-Adressen und Portnummern) Schlüssel in C++?

Wie kann ich vier Tupel als Schlüssel in der Kartendatenstruktur verwenden? Wenn es besser ist, vier Tupel zu einem einzigen Wert zu ändern, welche Umwandlung ist besser? (Ich meine Serialisierung in Nummer oder Zeichenfolge oder einem anderen Datentyp an der Stelle der Speicherung und Abrufleistung)

Annahme: IP-Adressen sind 32-Bit-Werte int int Zeichen.

+0

http://en.cppreference.com/w/cpp/utility/tuple? –

+0

'std :: tuple' haben lexikalische Reihenfolge (vorausgesetzt, seine Verbindungen haben). So kann 'std :: tuple ' als Schlüssel verwendet werden. (aber eine dedizierte Struktur mit besserem Namen wäre besser IMO). – Jarod42

+0

Diese Syntax std :: tuple gut, jetzt möchte ich diese Syntax kurz machen. Es ist sehr lang, ein Index für die Kartendatenstruktur zu sein. Wie kann ich das machen ? – user3728748

Antwort

0

Sie können Ihren eigenen Typ als Schlüssel verwenden und einen Vergleichsoperator '<' für die Bestellung in der Karte bereitstellen.