gpt4 book ai didi

c++ - 将更多数据传递给 std :set Comparison class

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:05 25 4
gpt4 key购买 nike

我有一个带有 Compare 类的 std::set,它需要额外的参数来比较键。这个可变参数是在运行时确定的,我将它打包在集合的键中,以便比较可以访问它。

但是,参数在逻辑上属于集合而不是键,所以这个解决方案看起来很尴尬,并且在所有键上复制相同的值。

有没有一种优雅的方法可以将附加参数传递给 Compare 类? (我首先想到的是 set::value_comp,但它在我需要引用时按值返回比较对象)。

谢谢。

最佳答案

std::set 的定义是:

template <
class Key,
class Traits=less<Key>,
class Allocator=allocator<Key>
>
class set

所以 Traits 应该是你的比较运算符,但如果要查看构造函数,你可以在那里再次看到它:

explicit set(
const Traits& _Comp
);

因此只需将您的实例传递给构造函数即可。 (注意是复制完成的)

关于c++ - 将更多数据传递给 std :set Comparison class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327879/

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