考虑以下比较函数:
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}
?它的重要性是什么,为什么有必要这样做?