📜  如何在C ++中将向量转换为Set

📅  最后修改于: 2021-06-01 01:54:41             🧑  作者: Mango

本文介绍了如何在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:天真的解决方案
    1. 获取要转换的向量。
    2. 创建一个空集以存储结果。
    3. 一步一步地遍历向量,然后将每个元素插入集合中。
    4. 打印结果集。

    下面是上述方法的实现

    // 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:使用范围转换器
    1. 获取向量。
    2. 定义一个集合,该集合使用2个指针begin和end复制向量的所有元素。
    3. 打印设置。

    下面是上述方法的实现:

    // 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()
    1. 获取向量。
    2. 定义一个集合,该集合将复制向量copy()方法的所有元素。
    3. 打印设置。

    下面是上述方法的实现:

    // 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等的更多准备工作,请参阅“完整面试准备课程”