Was ist ein Vektor von Paaren?
Ein Paar ist ein Container, der zwei einander zugeordnete Werte speichert, und ein Vektor , der mehrere solcher Paare enthält, wird als Vektor von Paaren bezeichnet.

// C++ program to demonstrate vector of pairs
#include<bits/stdc++.h>
using namespace std;
  
int main()
{
    //declaring vector of pairs
    vector< pair <int,int> > vect;
  
    // initialising 1st and 2nd element of
    // pairs with array values
    int arr[] = {10, 20, 5, 40 };
    int arr1[] = {30, 60, 20, 50};
    int n = sizeof(arr)/sizeof(arr[0]);
  
    // Entering values in vector of pairs
    for (int i=0; i<n; i++)
        vect.push_back( make_pair(arr[i],arr1[i]) );
  
    // Printing the vector
    for (int i=0; i<n; i++)
    {
        // "first" and "second" are used to access
        // 1st and 2nd element of pair respectively
        cout << vect[i].first << " "
             << vect[i].second << endl;
    }
  
    return 0;
}

Ausgabe:

10 30
20 60
5 20
40 50

Fall 1: Sortieren der Vektorelemente auf der Grundlage des ersten Elements von Paaren in aufsteigender Reihenfolge.
Diese Art der Sortierung kann mit der einfachen Funktion „sort()“ erreicht werden. Standardmäßig sortiert die Sortierfunktion die Vektorelemente auf Basis des ersten Elements von Paaren.

// C++ program to demonstrate sorting in
// vector of pair according to 1st element
// of pair
#include<bits/stdc++.h>
using namespace std;
  
int main()
{
    // Declaring vector of pairs
    vector< pair <int,int> > vect;
  
    // Initializing 1st and 2nd element of
    // pairs with array values
    int arr[] = {10, 20, 5, 40 };
    int arr1[] = {30, 60, 20, 50};
    int n = sizeof(arr)/sizeof(arr[0]);
  
    // Entering values in vector of pairs
    for (int i=0; i<n; i++)
        vect.push_back( make_pair(arr[i],arr1[i]) );
  
    // Printing the original vector(before sort())
    cout << "The vector before sort operation is:\n" ;
    for (int i=0; i<n; i++)
    {
        // "first" and "second" are used to access
        // 1st and 2nd element of pair respectively
        cout << vect[i].first << " "
             << vect[i].second << endl;
  
    }
  
    // Using simple sort() function to sort
    sort(vect.begin(), vect.end());
  
     // Printing the sorted vector(after using sort())
    cout << "The vector after sort operation is:\n" ;
    for (int i=0; i<n; i++)
    {
        // "first" and "second" are used to access
        // 1st and 2nd element of pair respectively
        cout << vect[i].first << " "
             << vect[i].second << endl;
    }
  
    return 0;
}

Ausgabe:

The vector before applying sort operation is:
10 30
20 60
5 20
40 50
The vector after applying sort operation is:
5 20
10 30
20 60
40 50

Fall 2: Sortieren der Vektorelemente auf der Grundlage des zweiten Elements von Paaren in aufsteigender Reihenfolge.
Es gibt Fälle, in denen wir die Elemente des Vektors auf der Grundlage der zweiten Elemente des Paares sortieren müssen. Dazu modifizieren wir die sort()-Funktion und übergeben ein drittes Argument, einen Aufruf an eine benutzerdefinierte explizite Funktion in der sort()-Funktion.

// C++ program to demonstrate sorting in vector
// of pair according to 2nd element of pair
#include<bits/stdc++.h>
using namespace std;
  
// Driver function to sort the vector elements
// by second element of pairs
bool sortbysec(const pair<int,int> &a,
              const pair<int,int> &b)
{
    return (a.second < b.second);
}
  
int main()
{
    // declaring vector of pairs
    vector< pair <int, int> > vect;
  
    // Initialising 1st and 2nd element of pairs
    // with array values
    int arr[] = {10, 20, 5, 40 };
    int arr1[] = {30, 60, 20, 50};
    int n = sizeof(arr)/sizeof(arr[0]);
  
    // Entering values in vector of pairs
    for (int i=0; i<n; i++)
        vect.push_back( make_pair(arr[i],arr1[i]) );
  
    // Printing the original vector(before sort())
    cout << "The vector before sort operation is:\n" ;
    for (int i=0; i<n; i++)
    {
        // "first" and "second" are used to access
        // 1st and 2nd element of pair respectively
        cout << vect[i].first << " "
             << vect[i].second << endl;
  
    }
  
    // Using sort() function to sort by 2nd element
    // of pair
    sort(vect.begin(), vect.end(), sortbysec);
  
    // Printing the sorted vector(after using sort())
    cout << "The vector after sort operation is:\n" ;
    for (int i=0; i<n; i++)
    {
        // "first" and "second" are used to access
        // 1st and 2nd element of pair respectively
        cout << vect[i].first << " "
             << vect[i].second << endl;
    }
    return 0;
}

Ausgabe:

 
The vector before applying sort operation is:
10 30
20 60
5 20
40 50
The vector after applying sort operation is:
5 20
10 30
40 50
20 60

Sortiervektor von Paaren in C++ | Satz 2 (in absteigender Reihenfolge nach erstem und zweitem sortieren)
 
Dieser Artikel wurde von Manjeet Singh beigesteuert. Wenn Sie GeeksforGeeks mögen und etwas beitragen möchten, können Sie auch einen Artikel mit write.geeksforgeeks.org schreiben oder Ihren Artikel an das Review-Team senden @geeksforgeeks.org. Sehen Sie, wie Ihr Artikel auf der Hauptseite von GeeksforGeeks erscheint, und helfen Sie anderen Geeks.

Falls Sie an Live-Kursen mit Experten teilnehmen möchten , beziehen Sie sich bitte auf DSA Live-Kurse für Berufstätige und Competitive Programming Live for Students .