我正在尝试比较 2 个大向量(整数),即在每个条目中,查看两个向量是否具有相同的元素。我尝试了一些事情,使用迭代器进行比较和简单的 for 循环。两者都有效,但我需要一些可以加快速度的东西,因为我必须比较很多向量。在 C++ 中做到这一点的最佳方法是什么?提前谢谢了!
typedef vector<int> fingerprint;
double aakernel(fingerprint a,fingerprint b, double h){
double diff = 0;
vector<int>::iterator dd = a.begin();
vector<int>::iterator ee = b.begin();
for(; dd != a.end() && ee != b.end() ;++dd, ++ee){ /*option one*/
if (*dd!=*ee){
diff++;
}
}
for (int dd=0;dd<int(a.size());dd++){ /*option two*/
if (a[dd]!=b[dd]){
diff++;
}
}
double due = (h/(1-h));
double q = -log(due)*diff;
double K = exp(q);
return (K);
}