我正在使用 Qt 解决一个逻辑问题。我有两个 QString 的 QSet:
QSet<QString> set1: [ "aaa", "BBB" ]
QSet<QString> set2: [ "aaa", "bbb", "ccc", "ddd" ]
我想从 set2 中减去 set1,所以我使用:
set2.subtract( set1 );
我得到:
set2: ["bbb", "ccc", "ddd"]
但在这种情况下,“bbb”不会从 set2 中删除,尽管 set1 包含此记录。这是因为默认的 QString::contains 方法(它是 QSet::subtract 使用的方法)是区分大小写的。
还有另一个 QString::contains 方法,它接受一个参数来定义区分大小写模式,但我真的不知道如何使用它。
请问有谁知道如何在两个 QString 的 QSet 之间进行不区分大小写的减法?
这是我到目前为止所尝试的:
将两个集合都转换为大写set2 显示在一个列表中,因此如果所有项目都为大写(或都不为小写),这并不奇怪。
扩展 QSet 类并覆盖减法方法我尝试使用 MyStringSet 自定义类扩展此类,但我对 Qt 不太满意,这在我看来相当复杂。