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

📅  最后修改于: 2023-12-03 15:08:51.863000             🧑  作者: Mango

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

在C++中,使用STL(标准模板库)可以方便的使用向量(vector)和集合(set),本文将介绍如何将向量转换为set。

1. 基本概念

向量是一个动态数组,可以使用下标访问,也可以在其末尾添加或删除元素。集合是一个容器,其中元素不重复,可以快速插入或删除元素,并支持一些集合操作,如并集、交集和差集。

2. 向量转set的方法

方法一:将向量中的元素逐个添加到set中

#include <iostream>
#include <vector> 
#include <set>

using namespace std;

int main(){
    vector<int> nums = {1, 3, 5, 3, 7, 8, 5};
    set<int> s;

    for (auto num : nums) 
        s.insert(num);

    for (auto x : s) 
        cout << x << " ";
    
    return 0;
}

输出结果为:

1 3 5 7 8 

在上述代码中,首先定义了一个包含重复元素的向量 nums。然后,定义了一个空集合 s。接着,通过遍历 nums 将元素逐个添加到集合 s 中。最后,遍历输出新集合 s。

方法二:使用set的构造函数

#include <iostream>
#include <vector> 
#include <set>

using namespace std;

int main(){
    vector<int> nums = {1, 3, 5, 3, 7, 8, 5};
    set<int> s(nums.begin(), nums.end());

    for (auto x : s) 
        cout << x << " ";
    
    return 0;
}

输出结果为:

1 3 5 7 8 

在上述代码中,创建了一个向量 nums,并将其作为参数传递给 set 的构造函数,该构造函数将创建一个与向量等效的集合 s。最后,遍历输出新集合 s。

3. 总结

本文介绍了两种将向量转换为集合的方法,在实际应用中可以根据情况选择使用。需要注意的是,集合中不允许存在重复元素,所以将向量转换为集合时需要考虑去除重复元素。