C++に問題があります。参照渡しではなく値渡しの配列を送信するC++
私は配列をソートする関数を持っていますが、元の配列では動作しません。私は参照ではなく値によって関数に配列を送りたい。私を助けてください。
int bogoSort(int tab[], int n){
int iloscOperacjiDominujacych = 0;
cout<<"rozpoczalem algorytm BogoSort"<<endl;
srand (time(NULL));
named (outer)
while(true){
// cout<<"Zaczal sie while"<<endl;
named (inner)
for(int i = 0; i < n; i++){
if(i == n-1){
break (outer);
}
if (tab[i] > tab[i+1]){
break (inner);
}
}
for(int i = n-1; i > 0; i--){
iloscOperacjiDominujacych++;
//operacja dominujaca to zamiana dwoch elementow w tablicy, wykonuje sie ZAWSZE najwiecej razy i jest najbardziej zlozona
int swapPostition = rand() % (i+1); //wylosowanie liczby miedzy <0;i> nalezacej do calkowitych
int temp = tab[i];
tab[i] = tab[swapPostition];
tab[swapPostition] = temp;
}
}
// cout<<"Wykonal sie while"<<endl;
show(tab,n);
return iloscOperacjiDominujacych;
}
どのように効率的に配列をコピーするには(シンプルな配列ではなくコレクション)?迅速な答えをありがとう。 – Yoda
@RobertKilar同じサイズの別の配列を作成し、元の配列から新しい配列に要素をコピーするために 'std :: copy'を使い、コピーを関数に渡します。 –