Inicialice un vector en C ++ de diferentes maneras

C ++ STL | Inicializar un vector : Aquí, vamos a aprender acerca de los diversos métodos para inicializar un vector en C ++ con ejemplos.

Vector en STL C ++ en una de la estructura de datos más conveniente que puede ser utilizado como una matriz dinámica. Hay varias maneras de definir un vector en C ++ y aquí se discuten todos ellos en detalle.

1D vector en breve

A 1D vector es una estructura de datos lineal que tiene características exactamente similares como una matriz de 1D. Vector ha añadido ventaja de las características dinámicas que le ayuda a crecer en tiempo de ejecución, que medios que se extienden de forma dinámica. Ahora para inicializar un vector Ha habido varios métodos, como a continuación,

1) Definir el vector vacío y luego push_back () como se requiere

Este es el más na y iuml; ve enfoque para inicializar un vector. En primer lugar, lo único que definimos un vector vacío. En ese punto, no tiene idea acerca de cuántos elementos y rsquo; s va a tener. A continuación, utilizando la función de push_back () podemos simplemente seguir añadiendo elementos en la parte posterior según el requisito.

A continuación se muestra un ejemplo de añadir elementos de acuerdo con los deseos del usuario.

#include <bits/stdc++.h>
using namespace std;
int main()
{
//empty vector initialized
vector<int> arr;
cout << "Enter 0 stop appending elementn";
cout << "Append any other numbern";
int a;
cin >> a;
while (a) {
arr.push_back(a);
cout << "press 0 to stop appendingn";
cout << "append any other numbern";
cin >> a;
}
cout << "printing the vector...n";
//print the vector
for (auto i : arr)
cout << i << " ";
cout << endl;
return 0;
}

salida:

Enter 0 stop appending element
Append any other number
4
press 0 to stop appending
append any other number
2
press 0 to stop appending
append any other number
-3
press 0 to stop appending
append any other number
6
press 0 to stop appending
append any other number
0
printing the vector...
4 2 -3 6

2) Inicializar el vector con el tamaño definido por el usuario

Nos puede inicializar el vector con el tamaño definido por el usuario también. Es bastante similar como la creación de una matriz dinámica usando malloc () o nuevo operador. Esto inicializa el vector con el elemento 0 por class.

a continuación es el ejemplo:

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cout << "Enter vector size:n";
cin >> n;
//by default it initializes with 0
vector<int> arr(n);
cout << "Printing the vector...n";
for (auto i : arr)
cout << i << " ";
cout << endl;
return 0;
}

salida:

Enter vector size:
5
Printing the vector...
0 0 0 0 0

3) Inicializar con definido por el usuario tamaño y el elemento definido por el usuario

aquí en lugar de la inicialización con class 0 , se inicializan con el usuario valor -definida

La sintaxis es,

vector<int> arr(size_t, value);

Crea un vector de tamaño size_t todo inicializado con el valor.

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, a;
cout << "Enter vector size:n";
cin >> n;
cout << "Enter your element that you want to initializen";
cin >> a;
//by default it initializes with 0
vector<int> arr(n, a);
cout << "Printing the vector...n";
for (auto i : arr)
cout << i << " ";
cout << endl;
return 0;
}

salida:

Enter vector size:
5
Enter your element that you want to initialize
2
Printing the vector...
2 2 2 2 2

4) Inicializar con elementos definidos por el usuario

También podemos inicializar el vector con elementos definidos por el usuario.

La sintaxis sería:

vector<int> arr{comma separated elements};

El ejemplo es el siguiente:

#include <bits/stdc++.h>
using namespace std;
int main()
{
//initialize with user-defined elements
vector<int> arr{ 1, 2, 3, 4, 5, -1, -2, 6 };
cout << "Printing the vector...n";
for (auto i : arr)
cout << i << " ";
cout << endl;
return 0;
}

salida:

Printing the vector...
1 2 3 4 5 -1 -2 6

5) Inicialización de un vector con elementos de otro vector

Nos puede también inicializar una vector usando elementos de otro vector. El vector se pasa como constructor para inicializar el nuevo vector. Esta es una copia profunda de hecho.

El ejemplo es como a continuación:

#include <bits/stdc++.h>
using namespace std;
int main()
{
//initialize with user-defined elements
vector<int> arr1{ 1, 2, 3, 4, 5, -1, -2, 6 };
cout << "Printing the vector arr1...n";
for (auto i : arr1)
cout << i << " ";
cout << endl;
//initialize another vector with this vector
vector<int> arr2(arr1);
cout << "Printing the vector arr2...n";
for (auto i : arr2)
cout << i << " ";
cout << endl;
return 0;
}

de salida:

Printing the vector arr1...
1 2 3 4 5 -1 -2 6
Printing the vector arr2...
1 2 3 4 5 -1 -2 6

6) Inicializar por una matriz

También podemos inicializar el vector usando una matriz existente.

El ejemplo es como a continuación:

#include <bits/stdc++.h>
using namespace std;
int main()
{
//static array
int arr[8] = { 1, 2, 3, 4, 5, -1, -2, 6 };
//initialize with array elements
vector<int> vect(arr, arr + 8);
cout << "Printing the vector...n";
for (auto i : vect)
cout << i << " ";
cout << endl;
return 0;
}

Salida:

Printing the vector...
1 2 3 4 5 -1 -2 6

Esto es todo el camino se puede inicializar un vector como por su elección. Antes de terminar unas cuantas cosas para tomar nota:

Lo primero es que podemos asignar a los elementos del vector de manera similar como array (asignado dinámicamente), pero para hacer que no puede inicializar el vector vacío, necesidad de inicializar junto con su tamaño. default un vector vacío, la memoria no se asigna elementos vectoriales default. Por lo tanto necesitamos inicializar con el tamaño definido por el usuario en primer lugar.

El código da a continuación fallo de segmentación mientras que el segundo código funciona bien.

#include <bits/stdc++.h>
using namespace std;
int main()
{
//define vector
vector<int> arr;
//trying to assign like array
arr[0] = 1;
//segmentation fault if
//we try to assign like this
return 0;
}

de salida:

Segmentation fault (core dumped)

#include <bits/stdc++.h>
using namespace std;
int main()
{
//define vector with size which allocates
//memory and initializes with 0
vector<int> arr(2);
//trying to assign like array
arr[0] = 1;
//works fine
cout << "works finen";
return 0;
}

de salida:

works fine


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *