我想解析兩個字符串向量並找出匹配的字符串和不匹配的字符串。如何在C++中比較兩個數組並返回不匹配的值
什麼,我希望得到例子:
輸入向量1會是什麼樣子:字符串1,字符串,STRING3]
輸入向量2會是什麼樣子:[字符串2,STRING3,串,4]
理想的輸出:
字符串1:不匹配
字符串2:比賽
STRING3:比賽
串,4:不匹配
目前我使用此代碼:
vector<string> function(vector<string> sequences, vector<string> second_sequences){
for(vector<string>::size_type i = 0; i != sequences.size(); i++) {
for(vector<string>::size_type j = 0; j != second_sequences.size(); j++){
if (sequences[i] == second_sequences[j]){
cout << "Match: " << sequences[i];
}else{
cout << "No Match: " << sequences[i];
cout << "No Match: " << second_sequences[j];
}
}
}
}
它匹配的那些偉大工程,但在一切迭代這麼多次,
和不匹配得到印有大量的人的時代。
我該如何改進?
我想'I = I + +'應該只是'++ i'(同樣以'j' obvs)。 – Galik 2014-09-20 04:37:21
也排序第一個數組,並進行二進制搜索與第二個數組作爲輸入應該會改善您的結果 – 2014-09-20 04:46:58
這可以通過排序和使用set_intersection和set_symmetric_difference來完成。看到這裏:http://ideone.com/y0o5St – PaulMcKenzie 2014-09-20 05:26:05