我正在使用Qt來處理邏輯問題。 的QString的,我有兩個QSets:Qt:如何在不區分大小寫模式下減去兩個QString的QSet
QSet<QString> set1: [ "aaa", "BBB" ]
QSet<QString> set2: [ "aaa", "bbb", "ccc", "ddd" ]
我想減去集2集1,所以我用:
set2.subtract(set1);
我獲得:
set2: ["bbb", "ccc", "ddd"]
但在那情況「bbb」不會從set2中刪除,儘管set1包含此記錄。 這是因爲默認的QString :: contains方法(它是QSet :: subtract使用的方法)區分大小寫。
還有另一個QString :: contains方法,它需要一個參數來定義大小寫敏感模式,但我真的不知道如何使用它。
有沒有人有一個想法如何使QString的兩個QSet之間不區分大小寫的減法?
這裏是我試過到目前爲止:
大寫的變換兩套 SET2顯示在列表中,因此,如果所有的項目都是大寫(或小寫既不),它不會被看中。
擴展QSet類並覆蓋減法我試着用MyStringSet自定義類來擴展這個類,但是我對Qt不是很滿意,這在我看來很複雜。
謝謝,我說我不是使用Qt相當舒適。使用您的解決方案,我無法在QSet中插入任何QString。所以我想我需要保持我的QSet ,但我應該將我的QString轉換爲QStringInsensitive。 –
Gildas
2011-05-04 15:49:48
你覺得呢?因爲,我不知道我是否必須創建一個QStringInsensitive(const QString&)構造函數或投射。 – Gildas 2011-05-04 15:55:26
嗨,我試過這個解決方案不成功: QString * entry; QStringInsensitive * entryInsensitive = qobject_cast(entry); 我得到這個錯誤: 呼叫爲「qobject_cast(QString的*)」 我無法找到互聯網上的任何實例,或在doc,沒有匹配的功能,使這個演員。 這裏可能需要一些幫助:) –
Gildas
2011-05-05 08:01:10