📜  在 C++ 中将集合复制到向量(1)

📅  最后修改于: 2023-12-03 14:50:52.342000             🧑  作者: Mango

在 C++ 中将集合复制到向量

在 C++ 中,可以使用标准库中的 std::vectorstd::set 来实现对集合的操作。有时,我们需要将一个集合复制到一个向量中,本文将介绍几种实现方法。

方法一:使用循环
#include <set>
#include <vector>

int main() {
    std::set<int> mySet = {5, 7, 2, 9, 8};
    std::vector<int> myVector;

    for (int element : mySet) {
        myVector.push_back(element);
    }

    return 0;
}

上述代码中,我们首先定义了一个 std::set<int> 集合 mySet 和一个空的 std::vector<int> 向量 myVector。我们通过循环将 mySet 中的元素逐个添加到 myVector 中,最终得到了一个包含所有 mySet 元素的向量。

方法二:使用 std::copy
#include <set>
#include <vector>
#include <algorithm>

int main() {
    std::set<int> mySet = {5, 7, 2, 9, 8};
    std::vector<int> myVector(mySet.size());

    std::copy(mySet.begin(), mySet.end(), myVector.begin());

    return 0;
}

上述代码中,我们首先仍然定义了一个 std::set<int> 集合 mySet,不同的是,我们使用了 mySetsize() 方法来定义一个大小与 mySet 相同的 std::vector<int> 向量 myVector。我们接着使用 std::copy 算法将 mySet 中的元素复制到 myVector 中,最终得到了一个包含所有 mySet 元素的向量。

方法三:使用 std::vector 的构造函数
#include <set>
#include <vector>

int main() {
    std::set<int> mySet = {5, 7, 2, 9, 8};
    std::vector<int> myVector(mySet.begin(), mySet.end());

    return 0;
}

上述代码中,我们仍然定义了一个 std::set<int> 集合 mySet,不同的是,我们使用了 std::vector 的构造函数,通过将 mySetbegin()end() 迭代器传递给构造函数来创建了一个包含所有 mySet 元素的向量。

以上是三种比较常见的将集合复制到向量的方法。在实际编码中可以根据需要选择适合的方法。