本文展示了如何在 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}
以下是进行所需转换的各种方法:
- 方法一:朴素的解决方案
- 获取要转换的向量。
- 创建一个空集,用于存储结果。
- 一个一个地遍历向量,并将每个元素插入到集合中。
- 打印结果集。
下面是上述方法的实现
// 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; }
输出:Vector:1 2 3 1 1 Set:1 2 3
- 方法二:使用范围转换器
- 获取向量。
- 定义一个集合,该集合使用 2 个指针 begin 和 end 复制向量的所有元素。
- 打印集合。
下面是上述方法的实现:
// 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; }
输出:Vector:1 2 3 1 1 Set:1 2 3
- 方法3:使用Copy()
- 获取向量。
- 定义一个复制向量 copy() 方法的所有元素的集合。
- 打印集合。
下面是上述方法的实现:
// 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( // 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<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; }
输出:Vector:1 2 3 1 1 Set:
相关用法
- C++ vector::empty()、vector::size()用法及代码示例
- C++ vector::push_back()、vector::pop_back()用法及代码示例
- C++ vector::at()、vector::swap()用法及代码示例
- C++ vector::begin()、vector::end()用法及代码示例
- C++ vector::cbegin()、vector::cend()用法及代码示例
- C++ vector::front()、vector::back()用法及代码示例
- C++ vector erase()、clear()用法及代码示例
- C++ vector::emplace_back用法及代码示例
注:本文由纯净天空筛选整理自s_vaibhave大神的英文原创作品 How to convert a Vector to Set in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。