Vector 2D de tuplas en C++ con ejemplos

¿Qué es Vector?

En C++ , un vector es similar a las arrays dinámicas con la capacidad de cambiar su tamaño automáticamente. Los elementos vectoriales se almacenan en ubicaciones de memoria contiguas para que se pueda acceder a ellos y recorrerlos mediante iteradores.

Funciones asociadas a un vector:

  • begin() : Devuelve un iterador que apunta al primer elemento del vector.
  • end() : Devuelve un iterador que apunta al elemento teórico que sigue al último elemento del vector.
  • rbegin() : Devuelve un iterador inverso que apunta al último elemento del vector (comienzo inverso). Se mueve del último al primer elemento.
  • size() : Devuelve el número de elementos en el vector.
  • vacío() : devuelve si el vector está vacío.
  • push_back() : Empuja los elementos en un vector desde atrás.
  • pop_back() : se utiliza para hacer estallar o eliminar elementos de un vector desde atrás.
  • insert() : Inserta nuevos elementos antes del elemento en la posición especificada.

¿Qué es un vector 2D?

En C++, un vector 2D es un vector de vectores, lo que significa que cada elemento de un vector 2D es un vector en sí mismo. Es lo mismo que una array implementada con la ayuda de vectores.

Funciones asociadas a un vector 2D:

  • size(): Devuelve el número de elementos en el vector 2D.
  • vacío(): Devuelve si el vector 2D está vacío.
  • push_back() : empuja un vector a un vector 2D desde atrás.
  • pop_back() : se utiliza para hacer estallar o eliminar elementos de un vector 2D desde la parte posterior.

¿Qué es una Tupla?

Una tupla en C++ es un objeto que se utiliza para agrupar elementos. En una tupla, los elementos pueden ser del mismo tipo de datos o diferentes tipos de datos. Los elementos de las tuplas se inicializan en el orden en que se accederá a ellos.

Funciones asociadas a una tupla:

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

¿Cómo acceder a una Tupla?

Para acceder a los elementos de una tupla, utilice la función get<>().

Sintaxis:

auto fistElement = get<0>(myTuple);
auto secondElement = get<1>(myTuple);
auto tercerElemento = get<2>(myTuple);

Este artículo se centra en cómo crear un vector 2D de tuplas en C++.

Vector 2D de tuplas

Un vector 2D de tuplas o vector de vectores de tuplas es un vector en el que cada elemento es un vector de tuplas en sí mismo. Aunque una tupla puede contener cualquier número de elementos por simplicidad, se considera una tupla de tres elementos.

Sintaxis:

vector<vector<tupla<tipo de datos1, tipo de datos2, tipo de datos3>> miContenedor

Aquí, 
dataType1, dataType2, dataType3 pueden ser tipos de datos similares o diferentes.

Ejemplo 1: a continuación se muestra el programa C++ para implementar el vector 2D de tuplas.

C++

// C++ program to demonstrate the
// working of vector of vectors
// of tuples
#include <bits/stdc++.h>
using namespace std;
 
// Function to print 2D vector elements
void print(vector<vector<tuple<int,
                               int, int> > >& myContainer)
{
    // Iterating over 2D vector elements
    for (auto currentVector : myContainer) {
        // Each element of the 2D vector
        // is a vector itself
        vector<tuple<int, int, int> > myVector
            = currentVector;
 
        // Iterating over the vector elements
        cout << "[  ";
        for (auto currentTuple : myVector) {
 
            // Print the element
            cout << "{";
            cout << get<0>(currentTuple)
                 << ", " << get<1>(currentTuple)
                 << ", " << get<2>(currentTuple);
            cout << "}  ";
        }
        cout << "]\n";
    }
}
 
// Driver code
int main()
{
    // Declaring a 2D vector of tuples
    vector<vector<tuple<int,
                        int, int> > >
        myContainer;
 
    // Initializing vectors of tuples
    // tuples are of type {int, int, int}
    vector<tuple<int, int, int> > vect1
        = { { 1, 1, 2 }, { 2, 2, 4 }, { 3, 3, 6 }, { 4, 4, 8 } };
 
    vector<tuple<int, int, int> > vect2
        = { { 1, 2, 3 }, { 1, 3, 4 }, { 1, 4, 5 }, { 1, 5, 6 } };
 
    vector<tuple<int, int, int> > vect3
        = { { 4, 5, 2 }, { 8, 1, 9 }, { 9, 3, 1 }, { 2, 4, 8 } };
 
    vector<tuple<int, int, int> > vect4
        = { { 7, 2, 1 }, { 6, 5, 1 }, { 1, 2, 9 }, { 10, 4, 8 } };
 
    // Inserting vector of tuples in the 2D vector
    myContainer.push_back(vect1);
    myContainer.push_back(vect2);
    myContainer.push_back(vect3);
    myContainer.push_back(vect4);
 
    // Calling print function
    print(myContainer);
 
    return 0;
}
Salida: [ {1, 1, 2} {2, 2, 4} {3, 3, 6} {4, 4, 8} ] [ {1, 2, 3} {1, 3, 4} {1, 4, 5} {1, 5, 6} ] [ {4, 5, 2} {8, 1, 9} {9, 3, 1} {2, 4, 8} ] [ {7, 2, 1} {6, 5, 1} {1, 2, 9} {10, 4, 8} ]

Ejemplo 2: a continuación se muestra el programa C++ para implementar el vector 2D de tuplas.

C++

// C++ program to demonstrate the
// working of vector of vectors of tuples
#include <bits/stdc++.h>
using namespace std;
 
// Function to print 2D vector elements
void print(vector<vector<tuple<string,
                               string, string> > >& myContainer)
{
    // Iterating over 2D vector elements
    for (auto currentVector : myContainer) {
        // Each element of the 2D vector
        // is a vector itself
        vector<tuple<string, string, string> > myVector
            = currentVector;
 
        // Iterating over the vector
        // elements
        cout << "[  ";
        for (auto currentTuple : myVector) {
            // Print string the element
            cout << "{";
            cout << get<0>(currentTuple) << ", "
                 << get<1>(currentTuple) << ", "
                 << get<2>(currentTuple);
            cout << "}  ";
        }
        cout << "]\n";
    }
}
 
// Driver code
int main()
{
    // Declaring a 2D vector of tuples
    vector<vector<tuple<string,
                        string, string> > >
        myContainer;
 
    // Initializing vectors of tuples
    // tuples are of type {string, string, string}
    vector<tuple<string, string, string> > vect1
        = { { "Geeks", "for", "Geeks" },
            { "Swift", "Python", "Java" },
            { "Int", "Float", "Double" } };
 
    vector<tuple<string, string, string> > vect2
        = { { "C++", "C", "C#" },
            { "R", "HTML", "CSS" },
            { "Javascript", "PHP", "Django" } };
 
    vector<tuple<string, string, string> > vect3
        = { { "Bhuwanesh", "Harshit", "DS" },
            { "Piyush", "Jai", "Naveen" },
            { "Anil", "Rahul", "keshav" } };
 
    vector<tuple<string, string, string> > vect4
        = { { "Sweta", "Tanu", "Kavita" },
            { "Nawal", "Bhargav", "Jitesh" },
            { "Daya", "Mohan", "Bhuwanesh" } };
 
    // Inserting vector of tuples in the
    // 2D vector
    myContainer.push_back(vect1);
    myContainer.push_back(vect2);
    myContainer.push_back(vect3);
    myContainer.push_back(vect4);
 
    // Calling print function
    print(myContainer);
 
    return 0;
}
Salida: [ {Geeks, for, Geeks} {Swift, Python, Java} {Int, Float, Double} ] [ {C++, C, C#} {R, HTML, CSS} {Javascript, PHP, Django} ] [ { Bhuwanesh, Harshit, DS} {Piyush, Jai, Naveen} {Anil, Rahul, keshav} ] [ {Sweta, Tanu, Kavita} {Nawal, Bhargav, Jitesh} {Daya, Mohan, Bhuwanesh} ]

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 *