Clasificación de Vector de Tupla en C++ (Orden Descendente)

¿Qué es el vector de tupla?
Una tupla es un objeto que puede contener una cantidad de elementos y un vector que contiene una cantidad múltiple de dicha tupla se denomina vector de tupla. Los elementos pueden ser de diferentes tipos de datos. Los elementos de las tuplas se inicializan como argumentos en el orden en que se accederá a ellos.

// C++ program to demonstrate vector of tuple
#include <bits/stdc++.h>
using namespace std;
int main()
{
    vector<tuple<int, int, int> > v;
    v.push_back(make_tuple(10, 20, 30));
    v.push_back(make_tuple(15, 5, 25));
    v.push_back(make_tuple(3, 2, 1));
  
    // Printing vector tuples
    for (int i = 0; i < v.size(); i++)
        cout << get<0>(v[i]) << " "
             << get<1>(v[i]) << " "
             << get<2>(v[i]) << "\n";
  
    return 0;
}
Producción:

10 20 30
15 5 25
3 2 1

Diferentes formas de ordenar vectores de tuplas

Caso 1: Clasificación de los elementos del vector sobre la base del primer elemento de las tuplas en orden descendente.
Para estos casos, modificamos la función sort() y pasamos un tercer argumento, una llamada a una función explícita definida por el usuario en la función sort().

// C++ program to demonstrate sorting in
// vector of tuple according to 1st element
// of tuple
#include <bits/stdc++.h>
using namespace std;
// Comparison function to sort the vector elements
// by first element of tuples in descending order
bool sortdesc(const tuple<int, int, int>& a,
              const tuple<int, int, int>& b)
{
    return (get<0>(a) > get<0>(b));
}
int main()
{
    vector<tuple<int, int, int> > v;
    v.push_back(make_tuple(10, 20, 30));
    v.push_back(make_tuple(15, 5, 25));
    v.push_back(make_tuple(3, 2, 1));
  
    // Using sort() function to sort by 1st
    // element of tuple
    sort(v.begin(), v.end(), sortdesc);
    cout << "Sorted Vector of Tuple on basis"
            " of first element of tuple:\n";
    for (int i = 0; i < v.size(); i++)
        cout << get<0>(v[i]) << " "
             << get<1>(v[i]) << " "
             << get<2>(v[i]) << "\n";
  
    return 0;
}
Producción:

Sorted Vector of Tuple on basis of first element of tuple:
15 5 25
10 20 30
3 2 1

Caso 2: Clasificación de los elementos del vector sobre la base del segundo elemento de las tuplas en orden descendente.
Hay casos en los que necesitamos ordenar los elementos del vector sobre la base de segundos elementos de tuplas. Para eso, modificamos la función sort() y pasamos el tercer argumento, una llamada a una función explícita definida por el usuario en la función sort().

// C++ program to demonstrate sorting in vector
// of tuple according to 2nd element of tuples
#include <bits/stdc++.h>
using namespace std;
  
// Comparison function to sort the vector elements
// by second element of tuples
bool sortbysec(const tuple<int, int, int>& a,
               const tuple<int, int, int>& b)
{
    return (get<1>(a) > get<1>(b));
}
  
int main()
{
    vector<tuple<int, int, int> > v;
    v.push_back(make_tuple(10, 20, 30));
    v.push_back(make_tuple(15, 5, 25));
    v.push_back(make_tuple(3, 2, 1));
  
    // Using sort() function to sort by 2nd element
    // of tuple
    sort(v.begin(), v.end(), sortbysec);
    cout << "Sorted Vector of Tuple on basis"
            " of Second element of tuple:\n";
  
    for (int i = 0; i < v.size(); i++)
        cout << get<0>(v[i]) << " "
             << get<1>(v[i]) << " "
             << get<2>(v[i]) << "\n";
    return 0;
}
Producción:

Sorted Vector of Tuple on basis of Second element of tuple:
10 20 30
15 5 25
3 2 1

Caso 3: Clasificación de los elementos del vector sobre la base del tercer elemento de las tuplas en orden descendente.
Hay casos en los que necesitamos ordenar los elementos del vector sobre la base de terceros elementos de tuplas. Para eso, modificamos la función sort() y le pasamos el tercer argumento, una llamada a una función explícita definida por el usuario en la función sort().

// C++ program to demonstrate sorting in vector
// of tuple according to 3rd element of tuple
#include <bits/stdc++.h>
using namespace std;
// Driver function to sort the vector elements
// by third element of tuple
bool sortbyth(const tuple<int, int, int>& a,
              const tuple<int, int, int>& b)
{
    return (get<2>(a) > get<2>(b));
}
  
int main()
{
    vector<tuple<int, int, int> > v;
    v.push_back(make_tuple(10, 20, 30));
    v.push_back(make_tuple(15, 5, 25));
    v.push_back(make_tuple(3, 2, 1));
  
    // Using sort() function to sort by 3rd element
    // of tuple
    sort(v.begin(), v.end(), sortbyth);
    cout << "Sorted Vector of Tuple on basis"
            " of Third element of tuple:\n";
    for (int i = 0; i < v.size(); i++)
        cout << get<0>(v[i]) << " "
             << get<1>(v[i]) << " "
             << get<2>(v[i]) << "\n";
  
    return 0;
}
Producción:

Sorted Vector of Tuple on basis of Third element of tuple:
10 20 30
15 5 25
3 2 1

Publicación traducida automáticamente

Artículo escrito por suri_kumkaran y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *