的名單上有所有文件的std::vector<std::string>
在目錄:的算法匹配前綴和名字名
// fileList
folder/file1
folder/file2
file3
file4.ext
和文件名的std::set<std::string>
與同爲所有使用的文件夾前綴:
// set1
file2
file4.ext
// set2
folder
我需要生成完整的(相對)路徑在設置1中的所有文件,但看不到這樣做的方式,而不會被fileList.size()
set1.size()
倍,乘以
UPDATE:一些澄清:
預期輸出上面的例子:
folder/file2
file4.ext
提案(低效?)溶液,也許太冗長,用笨實現:
// pseudo-code!
vector<string> allpossibleFullPaths(set1.size()*set2.size());
vector<string> output;
foreach(prefix_in_set2)
foreach(filename_in_set1)
allpossibleFullpaths.push_back(set2[i] + "/" set1[i])
foreach(filename_in_fileList)
files.push_back(find(fileList[i] in allpossibleFullPaths));
(快速pseudocode- ish) 這看起來效率很低,有沒有更好的方法來進行這些比賽?
謝謝! PS:更好的辦法是跟蹤雙打,這樣我就可以向用戶發出警告。
你的問題對我來說依然模糊不清。 – YeenFei 2010-08-14 17:05:46
已更新,以提供我的低效算法和所需輸出。 – rubenvb 2010-08-14 18:03:34
前綴可以是'fold'或'folder/fi'嗎?或者第二組總是一個完整的文件夾路徑,第一組只是文件名? – strager 2010-08-14 18:05:49