gpt4 book ai didi

c++ - 使用STL算法合并大量容器

转载 作者:行者123 更新时间:2023-11-27 23:27:49 25 4
gpt4 key购买 nike

我有很多列表、 vector 、集合...(无论您喜欢什么)指向某个类的称为 RealAlgebraicNumberPtr 的指针。它们已排序。

我想合并它们,当然我想快速高效地完成。

什么是最好的选择? std::merge ?或者也许 std::set?我可以同时提供 < 和 == 排序。

有什么想法吗?

最佳答案

如前所述,std::merge 没问题。

仅针对 std::list,您可以从 std::list::merge 成员函数 实现的优化中获益:它从源中拼接列表节点进入目标。这样,源列表将变为空,但它会避免资源(重新)分配

回复:std::set

事实上,您可以将 std::merge 合并到 std::set 中以一次性获得唯一值。使用通用合并,不会过滤重复值,但结果 排序,因此您可以将 std::unique 应用于结果。如果您期望有很多重复项,使用 std::set

可能会更快

关于c++ - 使用STL算法合并大量容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049962/

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