我想解析两个字符串向量并找出匹配的字符串和不匹配的字符串。如何在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