¿Cómo almacenar triplete de datos en un vector en C++?

Dado un vector, ¿cómo podemos almacenar 3 elementos en una celda del vector?

Ejemplos:

Input : 2 5 10
        3 6 15
Output : (2, 5, 10)  // In first cell of vector
         (3, 6, 15)  // In second cell of vector

Una solución es crear una clase o estructura definida por el usuario . Creamos una estructura con tres miembros, luego creamos un vector de esta estructura.

// C++ program to store data triplet in a vector
// using user defined structure.
#include<bits/stdc++.h>
using namespace std;
  
struct Test
{
   int x, y, z;
};
  
int main()
{
    // Creating a vector of Test
    vector<Test> myvec;
  
    // Inserting elements into vector. First
    // value is assigned to x, second to y
    // and third to z.
    myvec.push_back({2, 31, 102});
    myvec.push_back({5, 23, 114});
    myvec.push_back({9, 10, 158});
  
    int s = myvec.size();
    for (int i=0;i<s;i++)
    {
        // Accessing structure members using their
        // names.
        cout << myvec[i].x << ", " << myvec[i].y
             << ", " << myvec[i].z << endl;
    }
    return 0;
}

Producción :

2, 31, 102
5, 23, 114
9, 10, 158

Otra solución es usar la clase de par en C++ STL . Hacemos un par con el primer elemento como elemento normal y el segundo elemento como otro par, por lo que almacenamos 3 elementos simultáneamente.

// C++ program to store data triplet in a vector
// using pair class
#include<bits/stdc++.h>
using namespace std;
  
int main()
{
    // We make a pair with first element as normal
    // element and second element as another pair.
    // therefore 3 elements simultaneously.
    vector< pair<int, pair<int, int> > > myvec;
  
    // For inserting element in pair use
    // make_pair().
    myvec.push_back(make_pair(2, make_pair(31, 102)));
    myvec.push_back(make_pair(5, make_pair(23, 114)));
    myvec.push_back(make_pair(9, make_pair(10, 158)));
  
    int s = myvec.size();
    for (int i=0; i<s; i++)
    {
        // The elements can be directly accessed
        // according to first or second element
        // of the pair.
        cout << myvec[i].first << ", " << myvec[i].second.first
              << ", " << myvec[i].second.second << endl;
    }
    return 0;
} 

Producción:

2, 31, 102
5, 23, 114
9, 10, 158

Este artículo es una contribución de Jatin Goyal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

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