本文展示了如何在 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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。