次の小さなコードを検討してください。
class Person {
public:
QString name;
int age;
};
int main()
{
QMultiHash<int, Person*> personHash;
Person* p1 = new Person;
p1->age = 24;
p1->name = "X";
personHash.insert(p1->age,p1);
Person* p2 = new Person;
p2->age = 24;
p2->name = "X";
if(personHash.contains(p2->age,p2)) {
cout << "Duplicate!!\n";
}
else {
cout << "Inserted!!\n";
}
return 0;
}
出力が挿入されます!! ハッシュはコンテンツではなくポインター値を比較するため、これは予想されます。
24 のキーでエントリを反復する必要なく、重複をチェックする方法はありますか?