Qtを使用して論理的な問題に取り組んでいます。QString の 2 つの QSet があります。
QSet<QString> set1: [ "aaa", "BBB" ]
QSet<QString> set2: [ "aaa", "bbb", "ccc", "ddd" ]
set2 から set1 を減算したいので、次を使用します。
set2.subtract( set1 );
そして、私は得ます:
set2: ["bbb", "ccc", "ddd"]
ただし、この場合、set1 にはこのレコードが含まれていますが、「bbb」は set2 から削除されません。これは、デフォルトの QString::contains メソッド (QSet::subtract で使用されるメソッド) が大文字と小文字を区別するためです。
大文字と小文字の区別モードを定義するパラメーターを取る別の QString::contains メソッドがありますが、それをどのように使用できるかはわかりません。
QStringの2つのQSet間で大文字と小文字を区別しない減算を行う方法を知っている人はいますか?
これが私がこれまでに試したことです:
両方のセットを大文字に変換set2 はリストに表示されるため、すべての項目が大文字 (または小文字以外) の場合は見栄えがよくありません。
QSet クラスを拡張し、減算メソッドをオーバーライドする このクラスを MyStringSet カスタム クラスで拡張しようとしましたが、Qt にあまり慣れておらず、非常に複雑に思えます。