我的 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;
}
C++ 中无法按值传递数组。如果您不想修改原始数组,那么您要么必须自己制作一个单独的副本并操作该副本,要么使用std::vector
or std::array
(如果你有 C++11)并按值传递并返回它(因为你can copy std::vector
or array
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)