お世話になります。
クラス型データを2つのリストに設定、そのリストを結合したいのですが、
下記のようにするとコンパイルエラーとなってしまいます。クラス型データ
のリストを連結するにはどのようにしたらよいでしょうか。
どうかご教授ください。
#include <iostream>
#include <list>
#include <functional>
using namespace std;
// データクラス
class PersonalInfo {
string name;
int age;
public:
// set
void setParam(string name, int age) {
this->name = name;
this->age = age;
}
// get
void getParam(string *name, int *age) {
*name = this->name;
*age = this->age;
}
};
int main() {
list<PersonalInfo> intlist1;
list<PersonalInfo> intlist2;
// データ作成
PersonalInfo pinf[2];
pinf[0].setParam("oda", 31);
pinf[1].setParam("toyotomi", 45);
// データ追加
intlist1.push_back( pinf[0] );
intlist2.push_back( pinf[1] );
// リスト連結
intlist1.merge(intlist2); ★コンパイルエラー
return 0;
}
解決しました。
お騒がせしました。
mergeの時にもソートのための大小比較が実行されているんですね。
演算子<, > をオーバーロードすることで解決できました。
ツイート | ![]() |