我搜索了很多,我不确定这是否是重复的查询,但我用它作为参考来为我创建一个排序,std::vector
它需要以下类型的数据。
typedef struct {
int size;
int type;
int id;
} AC;
我能够为每个标准编写单独的函数对象。但是,我的项目要求说我只需要一个类或结构来包含所有用于根据 和 排序的size
函数type
对象id
。是否可以std::sort
在一个类中包含所有功能对象?
我的意思是
Comparator com;
sort(iVec.begin(),iVec.end(),com.sortbysize);
sort(iVec.begin(),iVec.end(),com.sortbytype);
sort(iVec.begin(),iVec.end(),com.sortbyid);
我也考虑binary_functions
满足我的要求,但是当我在一个类中声明多个函数对象时,我遇到了错误。
此外,函数对象std::sort
(以及任何涉及比较的 STL 算法)是否必须是函数对象,bool operator()
或者它们可以是返回的普通函数bool
?