std :: mapに必要なoperator<()メソッドに問題があります。次のような複合キーとして構造体を使用しています。
struct MyKey {
std::string string1;
std::string string2;
std::string string3;
unsigned int uint1;
friend bool operator<(const MyKey& mk1, const MyKey& mk2)
{
return mk1.string1 < mk2.string1 && mk1.string2 < mk2.string2 &&
mk1.string3 < mk2.string3 && mk1.uint1 < mk2.uint1;
}
}
紹介したように、4つの値を持つ複合キーを使用したいのですが、 operator<メソッドでこれを実現する方法がわかりません。一度に1つの値しか保存されないことを確認しました。
誰かが正しい状態がどのように見えるか教えてもらえますか?
前もって感謝します!