2 つの大きなベクトル (整数) を比較しようとしています。つまり、各エントリで、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);
}