How to convert a Vector to 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:
- Method 1: Naive Solution
- Get the vector to be converted.
- Create an empty set, to store the result.
- Iterate through the vector one by one, and insert each element into the set.
- Print the resultant set.
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; } |
Output
Vector: 1 2 3 1 1 Set: 1 2 3
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; } |
Output
Vector: 1 2 3 1 1 Set: 1 2 3
- Method 3: Using Copy():
- Get the vector.
- Define a set that copies all elements of the vector using the standard algorithm std::copy() method defined in the <algorithm> header.
- Print the set.
Below is the implementation of the above approach:
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; } |
Output
Vector: 1 2 3 1 1 Set: 1 2 3
Contact Us