Cómo copiar elementos de la matriz a un vector de STL C ++?

C ++ STL | copiar elementos de la matriz de un vector : Aquí, vamos a aprender cómo copiar elementos de la matriz de un vector usando el programa de STL C ++ sin utilizar un bucle?

Dada una matriz y tenemos que copiar sus elementos a un vector en STL C ++.

Copia de elementos de la matriz a un vector

En C ++ STL, podemos elementos de la matriz de copia a un vector mediante el uso de las siguientes maneras,

  1. Asignación de elementos de la matriz mientras que declara un vector
    Cuando declarar un vector podemos asignar elementos de la matriz mediante la especificación de la gama [principio, fin] de una matriz.
        vector<type> vector_name(array_start, array_end);

  2. Mediante el uso de la función de copia
    copia () es una función de biblioteca de algoritmo cabecera se puede utilizar para copiar elementos de una matriz a un vector mediante la especificación de la gama array [principio, fin] y un iterador que apunta a la posición inicial (de donde queremos asignar el contenido) del vector.
        vector<type> vector_name(size);
    std::copy(array_start, array_end, vector_start_iterator);

Nota: Para utilizar vector – class & lt; vector & gt; de cabeza, y para copia de uso () Función – include & lt; algoritmo de & gt; encabezado o simplemente podemos utilizar . & Lt; bits / STDC ++ h & gt; archivo de cabecera.

programa

C ++ STL para copiar elementos de la matriz a un vector

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
//an array
int arr[] = { 10, 20, 30, 40, 50 };
//assigning array to vector while declaring it
vector<int> v1(arr + 0, arr + 5);
//declaring an arrray first
//and then copy the array content
vector<int> v2(5);
copy(arr + 0, arr + 5, v2.begin());
//printing the vectors
cout << "vector (v1): ";
for (int x : v1)
cout << x << " ";
cout << endl;
cout << "vector (v2): ";
for (int x : v2)
cout << x << " ";
cout << endl;
return 0;
}

salida

vector (v1): 10 20 30 40 50
vector (v2): 10 20 30 40 50


Deja un comentario

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