在struct C ++中排序成员的向量

时间:2014-02-27 09:08:01

标签: c++ sorting vector

您好我想对矢量的成员进行排序。我见过类似的问题,但面临的错误是不同的。我按照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个参数。有人可以帮忙吗?

1 个答案:

答案 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); }