gpt4 book ai didi

c++ - 如何简单地调整指针的集合或映射排序谓词

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:18 25 4
gpt4 key购买 nike

对此一定有一个简单的答案......

我有一个 std::set 或 std::map 或一些具有自然顺序的对象类型 - 比如 std::less。

我需要更改我的集合或映射以包含 shared_ptr 而不是 T 的拷贝。

所以我想要这样的东西:

using my_set std::set<std::shared_ptr<T>, std::less<*T>>;

但是对于如何指定“在 T 的 ____ 适配器上使用 less 适配器,以便它在取消引用的成员上,而不是在 shared_ptrs 上!”我一片空白!

有没有std::less<std::dereference<std::shared_ptr<T>>>等价?

最佳答案

C++标准库中目前还没有仿函数可以实现你想要的。您可以编写自定义比较器,或者如果您经常需要此功能,请提出一个indirect/dereference 函数对象。

相关且可能有用的线程;第一个为许多运算符(operator)提供了通用解决方案(即使它需要一些代码):

关于c++ - 如何简单地调整指针的集合或映射排序谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39960165/

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