具有结构的多重集

Multiset With Structures

我想声明一个结构的多重集。 我的多重集声明的当前形式是

struct obj
{
   //code
};

struct compare
{
    inline bool operator()(const obj &a, const obj &b)
    {
    //code
    }
};
multiset<obj,compare> mst;

是否有任何其他形式的声明可以通过为 obj.

重载运算符只使用一个结构

是的,您可以为您的结构重载运算符 <,作为成员函数或 free-standing。这将使代码更简洁(在我纯粹主观的意见),但在实践中不会导致任何性能差异。

事实上,优化编译器更有可能生成完全相同的代码(前提是实际比较代码相同)。