各位前輩好,小弟有一個問題想請教各位高手
假設說今天我程式跑一個迴圈後,會取得多筆字串,
並且存在容器(vector、list皆可)裡,例如存到conditionVector
假設取得的字串是:"111"、"10"、"50"、"30"、"200"
接著程式就要去讀取data,例如讀近來的資料存到dataVector
假設讀近來的資料是:"10"、"111"、"200"、"50"、"800"
我想請問的是,
有什麼方法可以快速且有效率去依照conditionVector的順序來排序
而conditionVector沒有的string就捨去
例如dataVector排序好後會變成"111"、"10"、"50"、"200"
我目前的方法是
vector<string> sortVector
for(auto conIter: conditionVector)
for(auto dataIter: dataVector)
if( conIter == dataIter ){
sortVector.push_back(dataIter);
break;
}
這方法雖然可行,可是效率極差@@
因為我conditionVector跟dataVector也許會有幾千、幾萬筆
本來想說把dataVector改存成unsorted_set,用find的方式來加速收尋
雖然有比較快,可是insert跟find的部分卻花了太多時間
所以想請教各位高手能否指導一下小弟是否有更快速的方法
感謝各位