obiektY klasy string i porownanie

0

Witam czy istnieje jakiś szybszy sposób do poukładania/porównania alfabetycznie zawartości kilku stringów?

Np. Mam 10 obiektów klasy string "nazwiska" to czy istnieje lepszy sposób do grupowego porównania czy trzeba do każdego osobno używać compare?
np.

int WynikPorowania = nazwisko1.compare(nazwisko2);

itd...

C++

0

Jeżeli masz porównać dany string z listą string'ów posortowanych alfabetycznie (aby znaleźć miejsce gdzie ma zostać wstawiony), to możesz użyć metody połowienia (ang. bisection);

0

Nie o to mi chodziło. Sorka jeżeli napisałem to niezrozumiale :P

Chodzi mi o to że mam kilka stringów do których wczytuje dane z getline lub sam w kodzie i by je posortować alfabetycznie.

0

No właśnie o tym mówię.
Wczytujesz kolejny string, znajdujesz miejsce gdzie ma być wstawiony metodą połowienia i wstawiasz go tam.
Po każdym wczytaniu masz już posortowane.

0

Dzięki wielkie nie miałem styczności jeszcze z funckją "sort" dopiero się uczę :P

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
	int rozmiar;
	cout << "Podaj licznosc klasy: ";
	cin >> rozmiar;


	string *wsk = new string[rozmiar];
	string nazwisko;

	for(int i = 0; i < rozmiar; i++)
	{
		cout << "Podaj nazwisko[" << i << "]: ";
		cin >> nazwisko;
		wsk[i] = nazwisko;
	}

	//sortowanie
	sort(wsk,wsk+rozmiar);

	cout << "Sprawdzanie sortowania\n" << endl;
	
	for(int i = 0; i < rozmiar; i++)
	{
		cout << "Naziwsko " << i << " : " << wsk[i] << endl;
	}

	system("pause");
}
 

Mam rozumieć, że sort(skąd,dokąd) dlaczego nie działa coś takiego sort(wsk,wsk[rozmiar]) ?
Działa ładnie jeszcze raz dzięki.

0

Sorry że usunąłem stara post z odpowiedziami (myślałem, że nie o to CI chodzi - trochę mnie tytuł zmylił), a wracając do twojego pytanie: jako parametry jest wysyłany adres tablicy- czyli jak zrobić tak &tab[indeks] będzie działało :)

1.cout << "Podaj licznosc klasy: "; -->błąd!!! - chyba nie wiesz co to jest klasa! Powinno być: "Podaj dlugosc tablicy" (Poczytaj: http://pl.wikibooks.org/wiki/C++/Klasy)

2.A i to usuń- nie potrzebne jest:

#include <string>
#include <algorithm>
0

Ależ wiem co to jest klasa!:D

Tutaj robiłem to na przykładzie klasy szkolnej :P Czyli ile osób tyle nazwisk;

<string> do string nazwisk
a <algorithm> do sort

Spoko twój post pomógł ;p

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