0

ユーザーがどの文字列値をどこに入れるかを定義できる構造体を取得しました。私はそれをアルファベット順に並べてみましたが、オンラインで見つけた調査ではうまくいきませんでした. 私は、使用者の誰かが私がどこで間違っているかを見ることができるかどうかを望んでいました

使用されているライブラリ: iostream、string、fstream、algorithm

struct House
{
    int room_num;               
    string person;      
};

struct compare_by_word
{
    bool operator()(const House& lhs, const House& rhs)
    {
        return lhs.person < rhs.person;
    }
};

ところで、私はビジュアルスタジオ2010を使用していますが、この行でエラーが発生します

  void asc_order()
    {
        sort(data.begin(), data.end(), compare_by_word());
//for loop will be displayed here to show table
    }

私が得るエラー:

エラー: 識別子データが定義されていません

struct compare_by_word エラー: 型名は許可されていません

4

4 に答える 4

2

タイプをコンパレーターとして渡しています。のオブジェクトcompare_by_wordコンパレータとしてに渡す必要がありますsort

于 2013-03-31T21:42:24.720 に答える
0

代替案は

struct compare_by_word
{
    bool operator()(const House& lhs, const House& rhs)
    {
        return lhs.person < rhs.person;
    }
} compare_by_word;  // Here.
于 2013-03-31T21:45:41.237 に答える