Sortowanie wskaźników do Stringa

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

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());

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