Un vector, una vez declarado, tiene todos sus valores inicializados a cero. A continuación se muestra un código de ejemplo para demostrar lo mismo.
CPP
// C++ program for displaying the default initialization // of the vector vect[] #include<bits/stdc++.h> using namespace std; int main() { // Creating a vector of size 8 vector<int> vect(8); // Printing default values for (int i=0; i<vect.size(); i++) cout << ' ' << vect[i]; }
Producción :
0 0 0 0 0 0 0 0
¿Qué pasa si deseamos inicializar el vector a un valor específico, digamos 1? Para esto, podemos pasar el valor junto con el tamaño del vector.
CPP
// C++ program for displaying specified initialization // of the vector vect[] #include<bits/stdc++.h> using namespace std; int main () { // Creates a vector of size 8 with all initial // values as 1. vector<int> vect(8, 1); for (int i=0; i<vect.size(); i++) cout << ' ' << vect[i]; }
Producción :
1 1 1 1 1 1 1 1
¿Qué sucede si deseamos inicializar los primeros 4 valores para decir 100 y el resto de 6 valores como 200? Una forma de hacerlo es proporcionar manualmente un valor a cada posición en el vector. Los otros métodos proporcionados en STL, la biblioteca de plantillas estándar, son fill y fill_n.
- fill() La función ‘fill’ asigna el valor ‘val’ a todos los elementos en el rango [begin, end), donde ‘begin’ es la posición inicial y ‘end’ es la última posición. NOTA: Tenga en cuenta que ‘comienzo’ está incluido en el rango pero ‘fin’ NO está incluido. A continuación se muestra un ejemplo para demostrar ‘relleno’:
CPP
// C++ program to demonstrate working of fill() #include <bits/stdc++.h> using namespace std; int main () { vector<int> vect(8); // calling fill to initialize values in the // range to 4 fill(vect.begin() + 2, vect.end() - 1, 4); for (int i=0; i<vect.size(); i++) cout << vect[i] << " "; return 0; }
- Producción :
0 0 4 4 4 4 4 0
- fill_n() En fill_n(), especificamos la posición de inicio, el número de elementos a rellenar y los valores a rellenar. El siguiente código demuestra el uso de fill_n.
CPP
// C++ program to demonstrate working of fil_n() #include <bits/stdc++.h> using namespace std; int main() { vector<int> vect(8); // calling fill to initialize first four values // to 7 fill_n(vect.begin(), 4, 7); for (int i=0; i<vect.size(); i++) cout << ' ' << vect[i]; cout << '\n'; // calling fill to initialize 3 elements from // "begin()+3" with value 4 fill_n(vect.begin() + 3, 3, 4); for (int i=0; i<vect.size(); i++) cout << ' ' << vect[i]; cout << '\n'; return 0; }
- Producción :
7 7 7 7 0 0 0 0 7 7 7 4 4 4 0 0
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Veamos la tabla de diferencias en forma tabular:
llenar() | llenar_n() | |
1. | Establece el valor dado a todos los elementos de la array. | Se utiliza para asignar un nuevo valor a un número específico de elementos en un rango que comienza con un elemento en particular. |
2. |
Su sintaxis es -: void fill(const value_type &val); |
Su sintaxis es -: void fill_n (OutputIterator first, Size n, const T& val); |
3. | No tiene valor de retorno. | Devuelve un iterador que apunta al elemento que sigue al último elemento a rellenar. |
4. | Su complejidad temporal es O(N) | Su complejidad temporal es O(N) |
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