當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ Vector轉Set用法及代碼示例


本文展示了如何在 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. 獲取要轉換的向量。
    2. 創建一個空集,用於存儲結果。
    3. 一個一個地遍曆向量,並將每個元素插入到集合中。
    4. 打印結果集。

    下麵是上述方法的實現

    
    // 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
    
  • 方法二:使用範圍轉換器
    1. 獲取向量。
    2. 定義一個集合,該集合使用 2 個指針 begin 和 end 複製向量的所有元素。
    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;
    }
    輸出:
    Vector:1 2 3 1 1 
    Set:1 2 3
    
  • 方法3:使用Copy()
    1. 獲取向量。
    2. 定義一個複製向量 copy() 方法的所有元素的集合。
    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
        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:
    



相關用法


注:本文由純淨天空篩選整理自s_vaibhave大神的英文原創作品 How to convert a Vector to Set in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。