Я intenting сортировать массив строк с этим кодом:сортировать массив строк с функцией
void sort(string scadena[]){
string temp;
//here i am intenting sort the elements. it works fine
for(int i=0;i<m;i++){
for(int j=i+1;j<m;j++){
if(scadena[i]>scadena[j]){
temp=scadena[i];
scadena[i]=scadena[j];
scadena[j]=temp;
}
}
}
// Here i am intenting remove the repeated elements, but it not works fine.
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
if(scadena[i]==scadena[j] && j!=i){
for(int k=j;k <m; k++){
scadena[k]=scadena[k+1];
}
m--;
}
}
}
//Because when i do the cout, the output has repeated elements. it not works
for(int i=0;i<m;i++){
cout<<i<<") "<<scadena[i]<<endl;
}
}
Выход повторил элементы, но я не знаю почему.
Полный код имеет функцию, которая выполняет перестановку строк.
Я не знаю, что произойдет.
Любая причина не использовать [ 'станд :: sort'] (http://en.cppreference.com/w/cpp/algorithm/sort)? – juanchopanza
Что случилось с 'std :: swap()'? – genpfault
@juanchopanza его домашнее задание, поэтому он не может его использовать. См. Здесь: http://stackoverflow.com/questions/17396222/how-to-generate-all-permutations-of-an-array-in-sorted-order – Borgleader