代码之家  ›  专栏  ›  技术社区  ›  em70

在c中隐藏不同的std::map compare参数++

  •  0
  • em70  · 技术社区  · 5 年前

    我有一节课是这样的:

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

    0 回复  |  直到 5 年前
        1
  •  4
  •   super    5 年前

    使用 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; }};