Requisito previo: conceptos básicos de vectores
Los siguientes son algunos puntos importantes que pueden ahorrar tiempo en pequeñas cosas en una entrevista o un concurso de codificación importante.
- vector <int> vect(10) vs vector<int> vect[10]
// Creates a vector vect[] of size 10 vector <int> vect(10) // creates an array of vectors vect[] of size // 10 where each vector has int members vector<int> vect[10]
- resize() y push_back():
después de usar la función resize() en un vector, si se usa push_back() en el mismo vector, los elementos que se empujan hacia atrás se agregan al final del vector redimensionado, y no en eso.// A C++ program to demonstrate that push_back()
// happens at the end of resized vector.
#include<bits/stdc++.h>
using
namespace
std;
int
main()
{
vector<
int
> vect;
for
(
int
i = 0; i < 5; i++)
vect.push_back(i);
// Resizing vector to size 10
vect.resize(10);
// Prints 0 1 2 3 4 0 0 0 0 0
for
(
int
i = 0; i < vect.size(); i++)
cout << vect[i] <<
" "
;
cout <<
"\n"
;
vect.push_back(50);
// Prints 0 1 2 3 4 0 0 0 0 0 50
for
(
int
i = 0; i < vect.size(); i++)
cout << vect[i] <<
" "
;
return
0;
}
Producción: 0 1 2 3 4 0 0 0 0 0 0 1 2 3 4 0 0 0 0 0 50
- función clear() Hace que el vector tenga cero elementos, es decir, no tiene elementos y no convierte los elementos en ceros.
- Creando un vector bidimensional
// This doesn't work vector<vector<int>> vect; // This works fine vector< vector <int> > vect;
La diferencia entre estas dos declaraciones es que la primera tiene un espacio entre los corchetes angulares ( > >). Escribir sin el espacio no funciona porque >> es un operador en C++.
- Pasar vectores a funciones:
cuando simplemente se pasa un vector a una función, se crea una copia del vector. Esto puede tomar mucho tiempo en casos de vectores grandes.// C++ program to demonstrate that when vectors
// are passed to functions without &, a copy is
// created.
#include<bits/stdc++.h>
using
namespace
std;
// The vect here is a copy of vect in main()
void
func(vector<
int
> vect)
{
vect.push_back(30);
}
int
main()
{
vector<
int
> vect;
vect.push_back(10);
vect.push_back(20);
func(vect);
// vect remains unchanged after function
// call
for
(
int
i=0; i<vect.size(); i++)
cout << vect[i] <<
" "
;
return
0;
}
Producción :
10 20
En situaciones en las que en realidad no necesitamos tener una copia del vector, la declaración debe hacerse de la siguiente manera:
// It is recommended to pass vectors by reference // wherever possible. int func(vector<int>& vect) { }
Este artículo es una contribución de Supiya Shrivatsa . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico 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