に2Dベクトルを渡します。 機能は次のとおりです。 は、私は整数の2Dベクトルを持っている機能
int coverTransactions(int k, const std::vector<std::vector<int> > matrix) { //k nombre de clusters
int compteur = 0;
for(int t = 0; t != 11; t++) {
compteur = 0;
for(int i = 0; i != k; i++) {
if(matrix[t][i] == 1)
compteur++;
}
if(compteur != 1)
return -1; //on retourne -1 si la transaction n'appartient pas à un et un seul cluster
}
return 0;//si tout se passe correctement, cad t appartient à un et un seul cluster on retourne 0
}
はフランスのコメントに注意を払ってはいけない、それだけだ返す値は私が解決したい問題にリンクされているが、それは、コードの理解に影響を与えることはありませんどのように説明します。何らかの理由で...
、このよう関数を呼び出すとき:
coderror: cannot convert ‘std::vector<std::vector<int> >*’ to ‘int (*)[3]’ for argument ‘2’ to ‘int coverTransactions(int, int (*)[3])’
:
std::cout << coverTransactions(3, &matrix) << std::endl;
私は次のエラーを取得します
彼らは同じタイプですので、私はあなたが代わりに参照のmatrix
にポインタを渡そうとする...なぜ
'&'から '&'を削除してみてください。引数はポインタではなく参照渡しに渡されます。 –
あなたのコメントをお寄せいただきありがとうございますが、残念ながら、私は同じエラーを受け取ります... –
@GuillaumeLeseur:いいえ、あなたはありません。私はちょうどそれを試して、それを修正します。そうでない場合は、実際のコードを表示していません。 –