In C++ ist ein Vektor ein vielseitiger Container, dessen Größe sich dynamisch ändern kann, was eine effiziente Manipulation von Elementen ermöglicht. Während ein Paar ein einfacher Container ist, der zwei heterogene Objekte enthalten kann, bietet er eine praktische Möglichkeit, die zugehörigen Daten zuzuordnen und zu verwalten. Wenn diese Paare innerhalb eines Vektors organisiert werden, erhalten die Entwickler die Möglichkeit, dynamische Sammlungen von Schlüssel-Wert-Paaren oder einer anderen Kombination aus zwei unterschiedlichen Elementen zu erstellen.
Diese Datenstruktur ist besonders nützlich in Szenarien, in denen die Elemente als Paare gespeichert werden müssen, beispielsweise beim Umgang mit Schlüssel-Wert-Paaren oder bei der Darstellung der Beziehungen zwischen Entitäten. In diesem Artikel werden wir das Konzept eines C++-Vektors von Paaren untersuchen und die verschiedenen Beispiele untersuchen, um seine praktischen Anwendungen zu veranschaulichen.
Beispiel 1: Grundlegende Verwendung: Iterieren über einen Vektor von Paaren
Betrachten wir ein einfaches Beispiel, in dem wir einen Vektor aus Paaren erstellen, die die Namen der Schüler und ihr entsprechendes Alter darstellen. Das Iterieren über einen Vektor von Paaren ähnelt dem Iterieren über einen regulären Vektor. Man kann entweder die Iteratoren oder bereichsbasierte „for“-Schleifen verwenden, um jedes Paar innerhalb des Vektors abzurufen.
Dieses Beispiel zeigt die Syntax für einen „Vektor von Paaren“ in einem sinnvollen Kontext.
#include
#include
#include
int main ( ) {
std::vector < std::pair < std::string, int >> studentData;
studentData.push_back ( std::make_pair ( 'Adam' , zwanzig ) ) ;
studentData.push_back ( std::make_pair ( 'Rechnung' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , einundzwanzig ) ) ;
std::cout << „Studentendaten: \N ' ;
für ( const auto & Student: studentData ) {
std::cout << 'Name: ' << student.first << ', Alter: ' << Student.Sekunde << std::endl;
}
zurückkehren 0 ;
}
In diesem C++-Codeausschnitt fügen wir zunächst drei wesentliche Header-Dateien ein: „
Im weiteren Verlauf deklarieren wir innerhalb der Funktion main() einen Vektor namens „studentData“ mithilfe des Containers „std::vector“. Dieser Vektor dient zum Speichern der Paare, wobei jedes Paar den Namen eines Schülers (dargestellt als „std::string“) und sein Alter (eine „int“-Ganzzahl) einschließt. Dann füllen wir den Vektor „studentData“ mit drei Paaren. Mit der Funktion „push_back“ werden Paare am Ende des Vektors hinzugefügt und so seine Größe dynamisch angepasst. Eine Schleife durchläuft dann „studentData“ und extrahiert und druckt den Namen und das Alter jedes Schülers. Die Ausgabe zeigt „Studentendaten:“ an, was die strukturierte Darstellung hervorhebt. Namen und Alter der Schüler werden separat ausgedruckt, wodurch die gespeicherten Daten übersichtlich dargestellt werden.
Beispiel 2: Sortieren eines Vektors von Paaren
Das Sortieren eines Vektors von Paaren ist eine häufige Operation, insbesondere wenn es um Schlüssel-Wert-Assoziationen geht. Hierzu kann die Funktion „std::sort“ aus dem Header „
#include
#include
int main ( ) {
std::vector < std::pair < std::string, int >> die Info;
info.push_back ( std::make_pair ( 'Peter' , fünfzehn ) ) ;
info.push_back ( std::make_pair ( „Dora“ , 29 ) ) ;
info.push_back ( std::make_pair ( „Hanna“ , zwanzig ) ) ;
std::cout << „Ursprüngliche Informationen: \N ' ;
für ( const auto & Eintrag: Info ) {
std::cout << 'Name: ' << Eintrag.zuerst << ', Alter: ' << Eintrag.Sekunde << std::endl;
}
std::sort ( info.begin ( ) , info.end ( ) ) ;
std::cout << ' \N Sortierte Informationen: \N ' ;
für ( const auto & Eintrag: Info ) {
std::cout << 'Alter: ' << Eintrag.Sekunde << ', Name: ' << Eintrag.zuerst << std::endl;
}
zurückkehren 0 ;
}
In diesem C++-Codebeispiel arbeiten wir mit einem Vektor aus Paaren, um die Daten zu Personen, insbesondere deren Namen und Alter, zu speichern und zu bearbeiten. Wir initialisieren einen Vektor mit dem Namen „Info of Pairs“ innerhalb der Funktion main(). Anschließend füllen wir diesen Vektor mit drei Paaren, die jeweils den Namen und das Alter einer bestimmten Person enthalten, und nutzen dabei die Funktion „push_back“ und „std::make_pair“ für eine effiziente Paarerstellung.
Wir geben die „Originalinformationen“ an die Konsole aus. Dazu gehört das Durchlaufen des „Info“-Vektors und das Drucken der Komponenten jedes Paares. Dann verwenden wir den „std::sort“-Algorithmus, um den „info“-Vektor basierend auf dem Standardvergleichsoperator für Paare neu anzuordnen, der das erste Element jedes Paares (in diesem Fall die Namen) vergleicht. Nach dem Sortiervorgang durchlaufen wir erneut den modifizierten „Info“-Vektor, indem wir die sortierten Informationen drucken. Diesmal liegt der Schwerpunkt der Ausgabe auf der Sortierung nach Alter und veranschaulicht das Ergebnis des Sortiervorgangs.
Beispiel 3: Kombinieren der Vektoren verschiedener Typen
Es kann vorkommen, dass Sie Informationen aus zwei Vektoren kombinieren müssen. Ein Vektor aus Paaren kann dabei helfen, die Assoziation zwischen den Elementen der beiden Vektoren aufrechtzuerhalten.
#include#include
int main ( ) {
std::vector < std::string > Städte = { 'New York' , 'Paris' , 'Tokio' } ;
std::vector < int > Populationen = { 8175133 , 2140526 , 37435191 } ;
std::vector < std::pair < std::string, int >> cityPopulationPairs;
für ( size_t i = 0 ; ich < std::min ( Städte.Größe ( ) , Populationsgröße ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { Städte [ ich ] , Populationen [ ich ] } ) ;
}
std::cout << „Stadt-Bevölkerungspaare:“ << std::endl;
für ( const auto & Paar: cityPopulationPairs ) {
std::cout << 'Stadt: ' << Paar.zuerst << ', Bevölkerung: ' << Paar.Sekunde << std::endl;
}
zurückkehren 0 ;
}
In der „Haupt“-Funktion des Codes werden zwei Vektoren deklariert: „Städte“ zum Speichern der Städtenamen und „Bevölkerungen“ zum Speichern der entsprechenden Bevölkerungswerte.
Ein dritter Vektor, „cityPopulationPairs“, ist definiert, um die Städtepaare und ihre jeweiligen Bevölkerungszahlen zu speichern. Jedes Paar ist „std::pair
Nach der Kombination der Informationen wird eine weitere „for“-Schleife verwendet, um die Paare zu durchlaufen, die in „cityPopulationPairs“ gespeichert sind. Die kombinierten Daten werden dann mit „std::cout“ in der Standardausgabe angezeigt und stellen jede Stadt und ihre entsprechende Bevölkerung klar dar.
Beispiel 4: Ermitteln der Maximal- und Minimalwerte
Die Identifizierung der Minimal- und Maximalwerte innerhalb eines Datensatzes ist eine häufige Anforderung bei algorithmischen und statistischen Operationen. Wir können einen Vektor von Paaren verwenden, um sowohl die Maximal- als auch die Minimalwerte in einer Sequenz zu verfolgen:
#include#include
#include
int main ( ) {
std::vector < int > Zahlen = { 5 , 12 , 18 , 3 , 7 , 4 , 33 } ;
std::vector < std::pair < du, du >> minMaxPairs;
std::sort ( zahlen.beginnen ( ) , Zahlen.Ende ( ) ) ;
minMaxPairs.push_back ( { Zahlen.vorne ( ) , Zahlen.zurück ( ) } ) ;
std::cout << „Min-Max-Paare:“ << std::endl;
für ( const auto & Paar: minMaxPairs ) {
std::cout << 'Mindest: ' << Paar.zuerst << ', Max: ' << Paar.Sekunde << std::endl;
}
zurückkehren 0 ;
}
Der bereitgestellte C++-Code demonstriert den Prozess des Ermittelns der Minimal- und Maximalwerte in einem Vektor aus Ganzzahlen und des anschließenden Speicherns dieser Werte in einem Vektor aus Paaren. Ein Vektor mit dem Namen „Zahlen“ wird zunächst mit einer Reihe von Ganzzahlen deklariert und initialisiert. Um die Minimal- und Maximalwerte im Datensatz effizient zu identifizieren, nutzt das Programm die Funktion „std::sort“ aus der Algorithmenbibliothek.
Diese Funktion zielt darauf ab, die Elemente in aufsteigender Reihenfolge anzuordnen und so die Identifizierung sowohl der Minimal- als auch der Maximalwerte im Datensatz zu vereinfachen. Die Sortieroperation wird auf den Vektor „Zahlen“ angewendet, wobei „numbers.begin()“ und „numbers.end()“ als Bereichsparameter verwendet werden. Nach dem Sortierschritt erstellt das Programm einen Vektor von Paaren, „minMaxPairs“, um die berechneten Minimal- und Maximalwerte zu speichern. Anschließend wird die Funktion „push_back“ verwendet, um ein einzelnes Paar hinzuzufügen, das das erste (Minimum) und das letzte (Maximum) Element des sortierten Zahlenvektors enthält. Abschließend gibt das Programm das Ergebnis aus, indem es den Vektor „minMaxPairs“ durchläuft und die Minimal- und Maximalwerte anzeigt.
Abschluss
Zusammenfassend lässt sich sagen, dass der C++-Paarvektor eine leistungsstarke und flexible Datenstruktur darstellt, die Programmieraufgaben noch vielseitiger macht. Durch eine detaillierte Untersuchung seiner Syntax und praktischen Anwendungen haben wir gesehen, wie dieser Container dabei hilft, die Schlüssel-Wert-Zuordnungen zu organisieren, die Informationen aus verschiedenen Vektoren zu kombinieren und die Minimal- und Maximalwerte zu verfolgen.