Sortowanie wskaźników do Stringa

Odpowiedz Nowy wątek
2014-12-15 02:59
0

Cześć, skleiłem taki oto kod i zastanawiam się czy nie ma w nim jakiś błędów, na pierwszy rzut oka wygląda dobrze ale chciałbym żeby ktoś bardziej obeznany to ocenił : )

Program ma wczytać z klawiatury n<=40 napisow i przzechowywac wskaźniki na te napisy w tablicy po czym posortować te napisy przestawiajac wskaźniki.

przykladowe wejscie:

5
bbb zzz xxx aaa d

wyjscie

aaa bbb d xxx zzz
string *(*ws_tab) = new string*[n];                 //tutaj przechowuję wskaźniki do stringów
string *s_tab = new string[n];                                               //a tutaj same napisy
 
for (int i = 0; i < n; i++)
    {
        getline(cin, s);
        if (s.length() == 0)                                              //jesli uzytkownik wcisnie "enter" (napis pusty) to wczytywanie
        {                                                                      //ma sie zakonczyc
            wpr = i;
            break;            
        }
        else
        {
            s_tab[i] = s;
            ws_tab[i] = &s_tab[i];
        }
 
    }
 
void s_sort(string *tablica[], int rozmiar)             //sortuje napisy ze wzgledu na wartosc zwracana przez metode compare
{                                                       //-1 nie sa alfabetycznie, 0 sa takie same, 1 sa alfabetycznie
    for (int i = 0; i < rozmiar; i++)
    {
        for (int j = rozmiar - 1; j > 0; j--)
            {
            if ( (*tablica[j]).compare(*tablica[j - 1]) < 0 )           //zmieniamy jesli nie sa alfabetycznie
                swap( tablica[j], tablica[j - 1] );                     //jesli sa takie same to zostaje zachowana kolejnosc wprowadzenia
            }
    }
}
 
delete[] s_tab;                                     //zwalnianie miejsca
delete[] ws_tab;  //czy ta tablica zostanie usunięta?

czy cos tutaj jest źle?

`dodanie znaczników i ``` - @furious programming

edytowany 1x, ostatnio: furious programming, 2014-12-15 10:30
Wstawiaj kod w znaczniki kolorujące składnię; Jeżeli nie wiesz jak, zobacz do tego artykułu - Formatowanie treści postów na forum - furious programming 2014-12-15 10:31

Pozostało 580 znaków

2014-12-15 03:40
2
BeYourself20 napisał(a):

... czy cos tutaj jest źle?
Sam odpowiedz, biorąc pod uwagę że całość da się zapisać następująco:

vector<string> tb;
unsigned size,value;
for(cin>>size;size--;tb.push_back(value)) cin>>value;
sort(tb.begin(),tb.end());

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0