各位前辈好,小弟有一个问题想请教各位高手
假设说今天我程式跑一个循环后,会取得多笔字串,
并且存在容器(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的部分却花了太多时间
所以想请教各位高手能否指导一下小弟是否有更快速的方法
感谢各位