gpt4 book ai didi

c++ - 在 C++ 中隐藏不同的 std::map 比较参数

转载 作者:行者123 更新时间:2023-11-27 22:33:00 26 4
gpt4 key购买 nike

我有一个看起来像这样的类:

template<typename comparer>
class MyClass {
std::map<std::uint32_t, MyElementType, comparer> entries;
public:
void doSomething(std::uint32_t key, const MyElementType& el) {
...
}
};

我想在 MyClass 以与特定比较器无关的方式专门针对不同的比较器之后使用它。最优雅的方法是什么?

最佳答案

使用 std::function 作为比较器。

using MyMap = std::map<std::uint32_t, int, std::function<bool(std::uint32_t, std::uint32_t)>>;
MyMap entries1{[](std::uint32_t a, std::uint32_t b){ return a < b; }};
MyMap entries2{[](std::uint32_t a, std::uint32_t b){ return a > b; }};

关于c++ - 在 C++ 中隐藏不同的 std::map 比较参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571700/

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