【发布时间】:2013-09-14 03:09:01
【问题描述】:
考虑以下比较函数:
bool compare(std::shared_ptr<myObject> &lhs, std::shared_ptr<myObject> &rhs){
return lhs->value < rhs->value;
}
现在的想法是初始化一个std::shared_ptr<myObject> 类型的多重集,它使用上述函数对元素进行排序。所以从我读到的书应该是这样的:
std::multiset<std::shared_ptr<myObject>, decltype(compare)*> myset{compare};
问题:
我的问题是,在声明中,我理解传递了一个函数指针来引用比较函数,但为什么我们要使用 {compare} 初始化集合?它的重要性是什么?为什么有必要这样做?
【问题讨论】: