Mapa de Tuplas en C++ con Ejemplos

¿Qué es una tupla?

Una tupla en C++ es un objeto que tiene la capacidad de agrupar varios elementos. Los elementos pueden ser del mismo tipo así como diferentes tipos de datos. Se puede acceder al orden en el que se inicializan los elementos de la tupla en el mismo orden.

Funciones asociadas a una tupla:

1. make_tuple(): Se utiliza para asignar tuplas con valores. Los valores pasados ​​deben estar en orden con los valores declarados en la tupla.
2. get(): Se utiliza para acceder a los valores de la tupla y modificarlos, acepta el índice y el nombre de la tupla como argumentos para acceder a un elemento de la tupla en particular.

¿Qué es el mapa?

Los mapas en C++ son contenedores asociativos que pueden almacenar elementos en forma de mapa. Cada elemento de un mapa tiene una clave y el valor asignado correspondiente. Dos valores asignados no pueden tener los mismos valores clave. Un mapa sigue la siguiente sintaxis,

Funciones asociadas al Mapa:

  • begin() : Devuelve un iterador al primer elemento del mapa
  • end() : Devuelve un iterador al elemento hipotético que sigue al último elemento en el mapa
  • size() : Devuelve el número de elementos en el mapa
  • max_size() : Devuelve el número máximo de elementos que puede contener el mapa
  • vacío() : devuelve si el mapa está vacío
  • clear() : Elimina todos los elementos del mapa

Mapa de Tuplas

Un mapa de tuplas es un mapa en el que la clave o los valores son una tupla.

Sintaxis:

map<tupla<tipodatos1, tipodatos2, tipodatos3>, tipodatos>;

Aquí, 

dataType1, dataType2, dataType3 son los tipos de datos para la tupla que es una clave aquí

dataType es el tipo de datos para el valor  

Este artículo se centra en cómo crear un mapa de tuplas en C++. Aunque también se puede hacer una tupla de más o menos elementos, pero por simplicidad, en este artículo, hemos usado tuplas que tienen solo tres elementos.

Ejemplo 1: A continuación se muestra el programa C++ para demostrar el funcionamiento de un mapa de tuplas.

C++

// CPP program to demonstrate 
// the working of a map of 
// tuples.
#include <bits/stdc++.h>
using namespace std;
  
// Function to print map elements
void print(map<tuple<int, int, 
           int>, int> &mapOfTuple)
{
  cout << "   Key(Tuple)            " << 
          "Value(Sum)\n\n";
  for (auto pr : mapOfTuple)
  
    // pr points to current pair of mapOfTuple
    cout << "[" << get<0>(pr.first) << ", " << 
            get<1>(pr.first) << ", " << 
            get<2>(pr.first) << "]            " << 
            pr.second << "\n";
  
  
}
  
// Driver code
int main()
{
  // Sending the hash function
  // as a third argument
  map<tuple<int, int, int>, 
            int> mapOfTuple;
  
  // Creating some tuples to be used 
  // as keys
  tuple<int, int, 
        int> tuple1(100, 200, 300);
  tuple<int, int, 
        int> tuple2(400, 500, 600);
  tuple<int, int, 
        int> tuple3(700, 800, 900);
  
  // Mapping sum of tuple elements as values
  mapOfTuple[tuple1] = get<0>(tuple1) + 
                       get<1>(tuple1) + 
                       get<2>(tuple1);
  mapOfTuple[tuple2] = get<0>(tuple2) + 
                       get<1>(tuple2) + 
                       get<2>(tuple2);
  mapOfTuple[tuple3] = get<0>(tuple3) + 
                       get<1>(tuple3) + 
                       get<2>(tuple3);
  
  // Calling print function
  print(mapOfTuple);
  
  return 0;
}

Producción:

Clave (Tupla) Valor (Suma)

[100, 200, 300] 600

[400, 500, 600] 1500

[700, 800, 900] 2400

Ejemplo 2: A continuación se muestra el programa C++ para demostrar el funcionamiento de un mapa de tuplas.

C++

// C++ program to demonstrate 
// the working of a map of 
// tuples.
#include <bits/stdc++.h>
using namespace std;
  
// Function to print map elements
void print(map<tuple<string, string, 
           string>, string> &mapOfTuple)
{
  cout << "   Key(Tuple)             " <<
          "Value(Concatenation)\n\n";
  
  // Iterating over map using range-based loop
  for (auto pr : mapOfTuple)
  
    // pr points to current pair of mapOfTuple
    cout << "[" << get<0>(pr.first) << 
            ", " << get<1>(pr.first) << 
            ", " << get<2>(pr.first) << 
            "]         " << pr.second << "\n";
}
  
// Driver code
int main()
{
  // Declaring a map whose key is a 
  // tuple of strings value is of 
  // also string type 
  map<tuple<string, string, string>, 
            string> mapOfTuple;
  
  // Creating some tuples of string types 
  // to be used as keys
  tuple<string, string, string> 
  tuple1("Geeks", "for", "Geeks");
  tuple<string, string, string> 
  tuple2("R", "HTML", "Javascript");
  tuple<string, string, string> 
  tuple3("Python", "Swift", "Java");
  
  // Mapping concatenation of tuple elements as values
  mapOfTuple[tuple1] = get<0>(tuple1) + " " + 
                       get<1>(tuple1) + " " + 
                       get<2>(tuple1);
  mapOfTuple[tuple2] = get<0>(tuple2) + " " + 
                       get<1>(tuple2) + " " + 
                       get<2>(tuple2);
  mapOfTuple[tuple3] = get<0>(tuple3) + " " + 
                       get<1>(tuple3) + " " + 
                       get<2>(tuple3);
  
  // Calling print function
  print(mapOfTuple);
  
  return 0;
}

Producción:

 Clave (Tupla) Valor (Concatenación)

[Geeks, para Geeks] Geeks para Geeks

[Python, Swift, Java] Python Swift Java

[R, HTML, Javascript] R HTML Javascript

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 *