【发布时间】:2011-12-09 16:21:42
【问题描述】:
我正在尝试对每个元素中包含一个 int 和一个字符串的向量进行排序。它是一个类类型的向量,称为向量配方。收到上述错误,这是我的代码:
在我的 Recipe.h 文件中
struct Recipe {
public:
string get_cname() const
{
return chef_name;
}
private:
int recipe_id;
string chef_name;
在我的 Menu.cpp 文件中
void Menu::show() const {
sort(recipes.begin(), recipes.end(), Sort_by_cname());
}
在我的 Menu.h 文件中
#include <vector>
#include "Recipe.h"
using namespace std;
struct Sort_by_cname
{
bool operator()(const Recipe& a, const Recipe& b)
{
return a.get_cname() < b.get_cname();
}
};
class Menu {
public:
void show() const;
private
vector<Recipe> recipes;
};
我做错了什么?
【问题讨论】:
-
向我们展示您遇到该错误的行...
-
您确定要按字符串值而不是配方 ID 进行排序吗?
-
我添加了c++标签;它应该引起这个问题的更多关注。
-
您是否考虑过使用集合而不是向量?这样它就默认排序了,你不必让它可变。