3 つの整数の組み合わせによって一意に識別されるデータがあります。
例:
アイテム #1: 10,20,1
アイテム #2: 10,21,0
アイテム #3: 0,14,13
アイテム #4: 103,324,78
私の構造:
struct structureKeyID
{
int keyA;
int keyB;
int keyC;
// Comparison operator for table sorting.
bool operator<(const structureKeyID& param) const
{
if (keyA < param.keyA) return true;
if (keyB < param.keyB) return true;
if (keyC < param.keyC) return true;
return false;
}
};
map <structureKeyID, classDataRecord> tableRecords;
キー (0,0,1) を追加すると、次のことがわかりました。
structureKeyID keyID1;
keyID1.keyA = 0;
keyID1.keyB = 0;
keyID1.keyC = 1;
tableRecords[keyID1] = <data>;
次に、キー (0,1,0) が存在するかどうかを確認します。
structureKeyID keyID2;
keyID1.keyA = 0;
keyID1.keyB = 1;
keyID1.keyC = 0;
if (tableRecords.find(keyID2) != tableRecords.end())
次に、エラーが発生します。
デバッグ アサーションに失敗しました!
\include\xtree 行: 1268
式: 無効な演算子
一方、キー (0,0,2) またはキー (10,0,2) が存在するかどうかを確認すると、正常に動作します。
この状況で比較演算子を作成する適切な方法は何ですか?
どうもありがとうございました!