gpt4 book ai didi

c++ - 将 std::sets 合并到 std::vector

转载 作者:太空狗 更新时间:2023-10-29 19:58:16 27 4
gpt4 key购买 nike

考虑以下因素。

我有两个 std::set 并希望按排序顺序将它们合并到 std::vector 中。

哪种方法最有效?

我做了类似的事情,但我认为一定有更好的方法。

std::set<int> S1;
std::set<int> S2;
// ....
// Initialization of sets
// ....

std::vector V;

std::set<int>::iterator iter;

for(iter = S1.begin(); iter!=S1.end(); ++iter)
{
V.push_back(*iter);
}

for(iter = S2.begin(); iter!=S2.end(); ++iter)
{
V.push_back(*iter);
}

std::sort(V.begin(), V.end());

这是我的代码,有没有更有效的方法?提前致谢。

最佳答案

std::merge 应该可以解决问题,因为 S1 和 S2 已排序:

// Initialization of sets
// ....
std::vector V;

std::merge(S1.begin(), S1.end(), S2.begin(), S2.end(), std::back_inserter(V));

//而不是 V.begin() -- 感谢您的更正。

关于c++ - 将 std::sets 合并到 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23547440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com