本文介绍了如何在C++中将向量转换为集合。
例子:
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}
以下是进行所需转换的各种方法:
- 方法1:天真的解决方案
- 获取要转换的向量。
- 创建一个空集以存储结果。
- 一步一步地遍历向量,然后将每个元素插入集合中。
- 打印结果集。
下面是上述方法的实现
// C++ program to convert // a Vector to Set #include
#include #include using namespace std; // Function to convert Vector to Set set convertToSet(vector v) { // Declaring the set set 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 s) { cout << "Set: "; for (int x : s) { cout << x << " "; } cout << endl; } // Functiont for printing the vector void printVector(vector vec) { cout << "Vector: "; for (int x : vec) { cout << x << " "; } cout << endl; } // Driver Code int main() { // Vector vector vec = { 1, 2, 3, 1, 1 }; printVector(vec); // Convert Vector to Set set s = convertToSet(vec); printSet(s); return 0; } 输出:Vector: 1 2 3 1 1 Set: 1 2 3
- 方法2:使用范围转换器
- 获取向量。
- 定义一个集合,该集合使用2个指针begin和end复制向量的所有元素。
- 打印设置。
下面是上述方法的实现:
// C++ program to convert // a Vector to Set #include
#include #include using namespace std; // Function to convert Vector to Set set convertToSet(vector v) { // Declaring the set // using range of vector set s(v.begin(), v.end()); // Return the resultant Set return s; } // Functiont for printing the set void printSet(set s) { cout << "Set: "; for (int x : s) { cout << x << " "; } cout << endl; } // Functiont for printing the vector void printVector(vector vec) { cout << "Vector: "; for (int x : vec) { cout << x << " "; } cout << endl; } // Driver Code int main() { // Vector vector vec = { 1, 2, 3, 1, 1 }; printVector(vec); // Convert Vector to Set set s = convertToSet(vec); printSet(s); return 0; } 输出:Vector: 1 2 3 1 1 Set: 1 2 3
- 方法3:使用Copy()
- 获取向量。
- 定义一个集合,该集合将复制向量copy()方法的所有元素。
- 打印设置。
下面是上述方法的实现:
// C++ program to convert // a Vector to Set #include
#include #include using namespace std; // Function to convert Vector to Set set convertToSet(vector v) { // Declaring the set set s; // Inserting the elements // of the vector in the set // using copy() method copy( // From point of the destination s.begin(), // From point of the destination s.end(), // Method of copying back_inserter(v)); // Return the resultant Set return s; } // Functiont for printing the set void printSet(set s) { cout << "Set: "; for (int x : s) { cout << x << " "; } cout << endl; } // Functiont for printing the vector void printVector(vector vec) { cout << "Vector: "; for (int x : vec) { cout << x << " "; } cout << endl; } // Driver Code int main() { // Vector vector vec = { 1, 2, 3, 1, 1 }; printVector(vec); // Convert Vector to Set set s = convertToSet(vec); printSet(s); return 0; } 输出:Vector: 1 2 3 1 1 Set:
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。