当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。