Conjunto múltiple de pares en C++ con ejemplos

¿Qué es Multiset?

Un conjunto múltiple es un contenedor asociativo que puede contener varios elementos en un orden específico. A diferencia de un conjunto, un conjunto múltiple puede contener múltiples ocurrencias del mismo elemento.

Algunas de las funciones asociadas a un multiset:  

  • begin() : Devuelve un iterador al primer elemento del conjunto múltiple. 
  • end(): Devuelve un iterador al elemento teórico que sigue al último elemento del conjunto múltiple.
  • size() : Devuelve el número de elementos en el conjunto múltiple.
  • max_size() : Devuelve el número máximo de elementos que puede contener el conjunto múltiple.
  • vacío() : devuelve si el conjunto múltiple está vacío.

¿Qué es Par?

El encabezado de utilidad en C++ nos proporciona un contenedor de pares . Un par consta de dos elementos de datos u objetos.

  • Se hace referencia al primer elemento como ‘primero’ y al segundo elemento como ‘segundo’ y el orden es fijo (primero, segundo).
  • Par se utiliza para combinar dos valores que pueden ser de tipo diferente. Pair proporciona una forma de almacenar dos objetos heterogéneos como una sola unidad.
  • El par se puede asignar, copiar y comparar. La array de objetos asignados en un mapa o hash_map es de tipo ‘par’ por defecto en el que todos los ‘primeros’ elementos son claves únicas asociadas con sus ‘segundos’ objetos de valor.
  • Para acceder a los elementos, usamos el nombre de la variable seguido del operador de punto seguido de la palabra clave primero o segundo.

¿Cómo acceder a un par?

Para acceder a los elementos de un par, use el operador de punto (.).

Sintaxis:

auto fistElement = myPair.first;
auto fistElement = myPair.second;

Multiset de pares

Un conjunto múltiple de pares es un conjunto múltiple en el que cada elemento es un par en sí mismo. Se considera que dos pares son iguales si el primero y el segundo elementos correspondientes de los pares son iguales. Ahora, si es necesario almacenar más de una copia de un par junto con otros elementos que también en un orden particular, en tales casos, el conjunto múltiple de pares es útil. 

Sintaxis:

multiset<par<tipo de datos1, tipo de datos2>> myMultiset;

 Aquí,

dataType1 y dataType2 pueden ser tipos de datos similares o diferentes.

Ejemplo 1: a continuación se muestra el programa C++ para demostrar el funcionamiento de un conjunto múltiple de pares que tienen valores enteros.

C++

// C++ program to illustrate the
// implementation of multiset of
// pairs
#include <bits/stdc++.h>
using namespace std;
  
// Function to print multiset 
// elements
void print(multiset<pair<int, 
           int>> &multisetOfPairs)
{  
  // Iterating over multiset of 
  // pairs elements
  for (auto cuurentPair : multisetOfPairs)
  {
    // Each element is a tuple itself
    pair<int, int> pr = cuurentPair;
  
    // Printing pair elements
    cout << "[ " << pr.first << ' ' << 
             pr.second << " ]"<< '\n';
  }
}
  
// Driver code
int main()
{
  // Declaring a multiset of tuples
  multiset<pair<int, 
  int>> multisetOfPairs;
  
  // Initializing a pair
  pair<int, int> pair1;
  pair1 = make_pair(1, 2);
  
  // Initializing a pair
  pair<int, int> pair2;
  pair2 = make_pair(3, 4);
  
  // Initializing another pair
  pair<int, int> pair3;
  pair3 = make_pair(5, 6);
  
  // Initializing another pair
  pair<int, int> pair4;
  pair4 = make_pair(7, 8);
  
  // Initializing another pair
  pair<int, int> pair5;
  pair5 = make_pair(9, 10);
  
  // Inserting into multiset
  multisetOfPairs.insert(pair1);
  multisetOfPairs.insert(pair2);
  multisetOfPairs.insert(pair3);
  multisetOfPairs.insert(pair4);
  multisetOfPairs.insert(pair5);
  
  // Calling print function
  print(multisetOfPairs);
  
  return 0;
}

Producción:

[ 1 2 ]
[ 3 4 ]
[ 5 6 ]
[ 7 8 ]
[ 9 10 ]

Explicación:

En el resultado anterior, los elementos están ordenados en orden de pares en el conjunto múltiple de pares.

Ejemplo 2: a continuación se muestra el programa C++ para demostrar el funcionamiento de un conjunto múltiple de pares que tienen valores de string.

C++

// C++ program to illustrate the
// implementation of multiset of
// pairs
#include <bits/stdc++.h>
using namespace std;
  
// Function to print multiset elements
void print(multiset<pair<string, 
           string>> &multisetOfPairs)
{
  // Iterating over multiset of pairs elements
  for (auto currentPair : multisetOfPairs)
  {
    // Each element is a pair itself
    pair<string, string> pr = currentPair;
  
    // Printing pair elements
    cout << "[ " << pr.first << ' ' << 
             pr.second << " ]"<< '\n';
  }
}
  
// Driver code
int main()
{
  // Declaring a multiset of pairs
  multiset<pair<string, 
  string>> multisetOfPairs;
  
  // Initializing a pair
  pair<string, string> pair1;
  pair1 = make_pair("GeeksforGeeks", 
                    "GFG");
  
  // Initializing a pair
  pair<string, string> pair2;
  pair2 = make_pair("Swift", 
                    "Python");
  
  // Initializing another pair
  pair<string, string> pair3;
  pair3 = make_pair("C++", "C");
  
  // Initializing another pair
  pair<string, string> pair4;
  pair4 = make_pair("PHP", 
                    "HTML");
  
  // Initializing another pair
  pair<string, string> pair5;
  pair5 = make_pair("Javascript", 
                    "CSS");
  
  // Inserting into multiset
  multisetOfPairs.insert(pair1);
  multisetOfPairs.insert(pair2);
  multisetOfPairs.insert(pair3);
  multisetOfPairs.insert(pair4);
  multisetOfPairs.insert(pair5);
  
  // Calling print function
  print(multisetOfPairs);
  
  return 0;
}

Producción:

[C++ C]
[GeeksforGeeks GFG]
[Javascript CSS]
[PHP HTML]
[Swift Python]

Explicación:

En el resultado anterior, los elementos están ordenados en orden de pares en el conjunto múltiple de pares.

Publicación traducida automáticamente

Artículo escrito por bhuwanesh 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 *