-1
Distance distance(const vector<long> &x, const vector <short> &y)
{
Distance total = 0.0;
Distance diff;
vector <long >::const_iterator cpx=x.begin(); //terminates at this line
vector <short>::const_iterator cpy=y.begin();
vector <long>::const_iterator cpx_end=x.end();
for(;cpx!=cpx_end;++cpx,++cpy){
diff = *cpx - *cpy;
total += (diff * diff);
}
return total;
}
距離が長いint。std :: vector const_iteratorを使用するとプログラムが終了する
ベクトルの先頭にconstイテレータを割り当てようとすると、myコードが終了しますか? なぜこれが起こっていますか? ベクトルは0で初期化されます。
この機能を呼び出すコード(最小限)と、プログラムの終了時に表示されるエラーメッセージを入力してください。あなたはこれにデバッグしましたか? –
"memset(&vec、0、sizeof(vec))"が "ベクトルが0で初期化されている"という場合は、それが問題です。 – stefaanv
@KerrekSBは心配しませんが、あなたはcpxとcpyを参照してくださいあなたは盲目的なことはありません反復子は宣言され、コードの同じ行に割り当てられている.. – shofee