Heterogene Container in C
Die STL bietet eine breite Palette von Containern zur Verarbeitung von Daten mit spezifischen Anforderungen, wie z. B. festen und variablen Größen, Daten gleichen und unterschiedlichen Typs, sortierte und unsortierte Daten sowie sequentieller und wahlfreier Zugriff. Wie Sie jedoch beobachtet haben, gibt es in der STL keinen Container, der variable Größe mit der Unterstützung verschiedener Datentypen kombiniert.
Um dieser spezifischen Anforderung gerecht zu werden, bietet C keinen nativen Container an. Stattdessen gibt es zwei Hauptansätze zum Speichern heterogener Daten in Containern variabler Größe:
Container mit Zeigern oder Referenzen:
Sie können speichern ein Container mit Zeigern oder Verweisen auf Objekte unterschiedlichen Typs, die von einer gemeinsamen Basisklasse erben. Sie könnten beispielsweise einen std::vector
Boost-Bibliothek:
Die Boost-Bibliothek bietet zwei leistungsstarke Tools für den Umgang mit heterogenen Daten:
Die in der Antwort auf die Frage bereitgestellten Codebeispiele zeigen, wie man mit boost::any einen erstellt Container variabler Größe, der Werte verschiedener Typen speichern kann, z. B. Ganzzahlen und Zeichenfolgen. boost::variant hingegen ermöglicht es Ihnen, eine Reihe zulässiger Typen zu definieren und Werte dieser Typen zu speichern, was einen typsicheren Zugriff ermöglicht.
Das obige ist der detaillierte Inhalt vonWie speichere ich heterogene Daten in Containern variabler Größe in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!