Open In App

How to convert a Vector to Set in C++

This article shows how to convert a vector to a set in C++. 

Example:



Input: vector = {1, 2, 3, 1, 1} 
Output: set = {1, 2, 3}

Input: vector = {1, 2, 3, 3, 5}
Output: set = {1, 2, 3, 5}



Below are the various ways to do the required conversion:




// 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;
}

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




// 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;
}

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

Below is the implementation of the above approach:




// 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;
}

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

Article Tags :