具有结构的多重集
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。这将使代码更简洁(在我纯粹主观的意见),但在实践中不会导致任何性能差异。
事实上,优化编译器更有可能生成完全相同的代码(前提是实际比较代码相同)。
我想声明一个结构的多重集。 我的多重集声明的当前形式是
struct obj
{
//code
};
struct compare
{
inline bool operator()(const obj &a, const obj &b)
{
//code
}
};
multiset<obj,compare> mst;
是否有任何其他形式的声明可以通过为 obj.
重载运算符只使用一个结构是的,您可以为您的结构重载运算符 <
,作为成员函数或 free-standing。这将使代码更简洁(在我纯粹主观的意见),但在实践中不会导致任何性能差异。
事实上,优化编译器更有可能生成完全相同的代码(前提是实际比较代码相同)。