您好我想对矢量的成员进行排序。我见过类似的问题,但面临的错误是不同的。我按照cplusplus.com上的“排序”步骤进行操作
struct Food {
char[8] Name;
float Price;
}
我有一个载体
std::vector<Food> FoodList;
我有一个比较功能:
bool comparePrice (Food f1, Food f2) { return (f1.Price<f2.Price); }
最后我的排序声明:
std::sort(FoodList.begin(),FoodList.end(),comparePrice);
但我遇到一个错误,排序需要2个参数,但我给了3.但是当我在MVS2010中编写程序时,它会提示我输入3个参数。有人可以帮忙吗?
答案 0 :(得分:2)
您的代码存在一些问题,请参阅以下评论:
struct Food {
char[8] Name; // this should be: char Name[8];, and even better std::string
float Price;
} // missing semicolon here ;
// You should use const Food& as parameter type
bool comparePrice (Food f1, Food f2) { return (f1.Price<f2.Price); }