我想声明一个结构的多重集。 我的多集声明的当前形式是
struct obj
{
//code
};
struct compare
{
inline bool operator()(const obj &a, const obj &b)
{
//code
}
};
multiset<obj,compare> mst;
是否还有其他形式的声明,可以通过对 obj 进行重载运算符来仅使用一种结构。
答案 0 :(得分:1)
是的,您可以为结构体重载运算符<
,既可以作为成员函数,也可以作为独立函数。 (根据我的主观观点,这将使代码更简洁),但实际上不会导致性能上的任何差异。
事实上,优化编译器更有可能生成完全相同的代码(前提是实际的比较代码相同)。