Я работаю над логической проблемой, используя Qt. У меня есть два набора QSet из QString:
QSet<QString> set1: [ "aaa", "BBB" ]
QSet<QString> set2: [ "aaa", "bbb", "ccc", "ddd" ]
Я хочу вычесть set1 из set2, поэтому я использую:
set2.subtract( set1 );
И я получаю:
set2: ["bbb", "ccc", "ddd"]
Но в этом случае "bbb" не удаляется из set2, хотя set1 содержит эту запись. Это связано с тем, что метод QString::contains по умолчанию (это метод, используемый QSet::subtract) чувствителен к регистру.
Существует еще один метод QString::contains, который принимает параметр для определения режима чувствительности к регистру, но я действительно не понимаю, как его использовать.
Кто-нибудь знает, как сделать вычитание без учета регистра между двумя QSet из QString, пожалуйста?
Вот что я пробовал до сих пор:
Преобразовать оба набора в верхний регистр. Набор2 отображается в списке, поэтому не будет лишним, если все элементы будут в верхнем регистре (или ни в одном из них).
Расширить класс QSet и переопределить метод вычитания Я пытался расширить этот класс с помощью пользовательского класса MyStringSet, но мне не очень удобно работать с Qt, и это кажется мне довольно сложным.