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