2011-03-31 333 views

回答

2

讓我假設類型的IDint(因爲你沒有指定的話)。

bool found = false; 
for (int i = 0; i < list->count(); ++i) { 
    if (list->item(i)->data(Qt::DisplayRole).toInt() == ID_to_match) { 
     found = true; 
     break; 
    } 
} 

if (!found) { 
    do_something_here(); 
} 
+0

我喜歡避免循環... – user63898 2011-03-31 08:12:44

+1

我沒有其他的辦法可以想到。這是一種搜索:按「數據」字段搜索。一般情況下,你不能完成比'O(n)'更快的搜索(不考慮關於二分搜索的問題等)什麼需要循環。如果你不操作數十億項目,這應該足夠快。特別是如果'ID'的類型足夠簡單,可以比較,比如'int'。如果你想要,你可以創建一個名爲'search_by_data'的獨立函數,並將代碼放在這裏。 – maverik 2011-03-31 08:17:34

相關問題