Я работаю над логической проблемой, используя Qt.У меня есть два QSets для 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, и это кажется мне довольно сложным.