vector如何實(shí)現(xiàn)快速查找?
數(shù)據(jù)結(jié)構(gòu)如下:C/C++ code string username, string userotherinfo}; vector<Userinfo userList; 現(xiàn)在的問題是,希望在一個(gè)這樣的vector里面,根據(jù)輸入條件進(jìn)行快速查找元素 條件可能是userid或者username或者userotherinfo中任意一個(gè) (例如查找username為xxx的元素,結(jié)果可能有多個(gè)) 并且userotherinfo查找時(shí)經(jīng)常是匹配前幾個(gè)字符的查找(類似數(shù)據(jù)庫(kù)like,例如 userotherinfo like 'XX%') ----------------------------------------------- ------解決方案-------------------- 那就別用vector啊,map或者set是紅黑樹,查找log n ------解決方案-------------------- 最快的就是哈希查找 不過建哈希表有點(diǎn)麻煩 ------解決方案-------------------- 如果目的是直接查找的話,不如用關(guān)聯(lián)容器啊。還有個(gè)建議就是直接用sqlite的memory database,用法和phisical database完全一樣,唯一不同是建立在內(nèi)存里,操作效率相當(dāng)高,我處理大數(shù)據(jù)一直都這么干。 用三個(gè)vector來保存他的迭代器吧。然后分別按照三個(gè)成員對(duì)三個(gè)vector進(jìn)行排序,最后是用二分查找來查。復(fù)雜度log(n)