返回信息流inline bool compare(const Sales_item &lhs,const Sales_item &rhs)
{
return (lhs->book()) < (rhs->book());
}
class Basket
{
private:
typedef bool (*Comp)(const Sales_item&,const Sales_item&);
public:
Basket():items(compare){}
private:
multiset<Sales_item,Comp> items;
};
void main()
{
}
这是c++primer上面的一个题目(15-35),我省了一些无关的代码。
问题出在我怎么把compare这个函数给传给multiset容器的一个对象呢。
到网上只找到这样的信息:
compare是函数,multiset的模板参数要求的是类型
你需要在multiset的模板参数里指定比较函数的类型,同时在multiset的构造函数里提供比较函数本身
但是我不明白我改怎么改动。
请高手指教。
这是一条镜像帖。来源:北邮人论坛 / cpp / #35263同步于 2010/1/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于multiset自定义比较函数的问题
lichehuo
2010/1/19镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
用函数对象?
struct Comp {
bool operator()(const Sales_item &lhs, const Sales_item &rhs) {
return (lhs->book()) < (rhs->book());
}
};
multiset<Sales_item, Comp> items;
【 在 lifesider 的大作中提到: 】
: 用函数对象可以,将compare继承于binary_function就行了
能帮我具体写一下吗?我实在不会。
谢谢了。