Cómo convertir un Vector a Set en C++

Este artículo muestra cómo convertir un vector en un conjunto en C++. 

Ejemplo:

Entrada: vector = {1, 2, 3, 1, 1} 
Salida: conjunto = {1, 2, 3}

Entrada: vector = {1, 2, 3, 3, 5}
Salida: conjunto = {1, 2, 3, 5}

A continuación se muestran las diversas formas de realizar la conversión requerida:

  • Método 1: solución ingenua
    1. Obtener el vector a convertir.
    2. Cree un conjunto vacío para almacenar el resultado.
    3. Recorra el vector uno por uno e inserte cada elemento en el conjunto.
    4. Imprime el conjunto resultante.

C++

// C++ program to convert
// a Vector to Set
 
#include <iostream>
#include <set>
#include <vector>
using namespace std;
 
// Function to convert Vector to Set
set<int> convertToSet(vector<int> v)
{
    // Declaring the set
    set<int> s;
 
    // Traverse the Vector
    for (int x : v) {
 
        // Insert each element
        // into the Set
        s.insert(x);
    }
 
    // Return the resultant Set
    return s;
}
 
// Functiont for printing the set
void printSet(set<int> s)
{
 
    cout << "Set: ";
    for (int x : s) {
        cout << x << " ";
    }
    cout << endl;
}
 
// Functiont for printing the vector
void printVector(vector<int> vec)
{
 
    cout << "Vector: ";
    for (int x : vec) {
        cout << x << " ";
    }
    cout << endl;
}
 
// Driver Code
int main()
{
 
    // Vector
    vector<int> vec = { 1, 2, 3, 1, 1 };
    printVector(vec);
 
    // Convert Vector to Set
    set<int> s = convertToSet(vec);
 
    printSet(s);
 
    return 0;
}
Producción

Vector: 1 2 3 1 1 
Set: 1 2 3 
  • Método 2: usar el convertidor de rango
    1. Obtener el vector.
    2. Defina un conjunto que copie todos los elementos del vector usando 2 punteros begin y end .
    3. Imprime el conjunto.

C++

// C++ program to convert
// a Vector to Set
 
#include <iostream>
#include <set>
#include <vector>
using namespace std;
 
// Function to convert Vector to Set
set<int> convertToSet(vector<int> v)
{
    // Declaring the set
    // using range of vector
    set<int> s(v.begin(), v.end());
 
    // Return the resultant Set
    return s;
}
 
// Functiont for printing the set
void printSet(set<int> s)
{
 
    cout << "Set: ";
    for (int x : s) {
        cout << x << " ";
    }
    cout << endl;
}
 
// Functiont for printing the vector
void printVector(vector<int> vec)
{
 
    cout << "Vector: ";
    for (int x : vec) {
        cout << x << " ";
    }
    cout << endl;
}
 
// Driver Code
int main()
{
 
    // Vector
    vector<int> vec = { 1, 2, 3, 1, 1 };
    printVector(vec);
 
    // Convert Vector to Set
    set<int> s = convertToSet(vec);
 
    printSet(s);
 
    return 0;
}
Producción

Vector: 1 2 3 1 1 
Set: 1 2 3 
  • Método 3: Usar Copiar():
    1. Obtener el vector.
    2. Defina un conjunto que copie todos los elementos del vector usando el algoritmo estándar std::copy() método definido en el encabezado <algorithm> .
    3. Imprime el conjunto.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program to convert
// a Vector to Set
 
#include <iostream>
#include <set>
#include <vector>
using namespace std;
 
// Function to convert Vector to Set
set<int> convertToSet(vector<int> v)
{
    // Declaring the set
    set<int> s;
 
    // Inserting the elements
    // of the vector in the set
    // using copy() method
    copy(
 
        // The pointer to the beginning
        // of the source container
        v.begin(),
       
        // The pointer to the end
        // of the source container
        v.end(),
 
        // Method of copying
        inserter(s, s.end()));
 
    // Return the resultant Set
    return s;
}
 
// Functiont for printing the set
void printSet(set<int> s)
{
 
    cout << "Set: ";
    for (int x : s) {
        cout << x << " ";
    }
    cout << endl;
}
 
// Functiont for printing the vector
void printVector(vector<int> vec)
{
 
    cout << "Vector: ";
    for (int x : vec) {
        cout << x << " ";
    }
    cout << endl;
}
 
// Driver Code
int main()
{
 
    // Vector
    vector<int> vec = { 1, 2, 3, 1, 1 };
    printVector(vec);
 
    // Convert Vector to Set
    set<int> s = convertToSet(vec);
 
    printSet(s);
 
    return 0;
}
Producción

Vector: 1 2 3 1 1 
Set: 1 2 3 

Publicación traducida automáticamente

Artículo escrito por s_vaibhave y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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