【发布时间】:2011-05-04 13:25:18
【问题描述】:
我正在使用 Qt 解决一个逻辑问题。 我有两个 QSet 的 QString:
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 不是很满意,这在我看来相当复杂。 p>
【问题讨论】:
标签: c++ qt set qstring subtraction