infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Sorin Rita din Decembrie 20, 2010, 01:10:53



Titlul: Afisare in ordine lexicografica
Scris de: Sorin Rita din Decembrie 20, 2010, 01:10:53
Salut !

Am un vector de structuri de date. Stuctura contine, printre altele, un vector de tip char in care retin un cuvant.  Cum pot,eventual optim, sa afisez cuvintele din vector in ordine lexicografica ?


Titlul: Răspuns: Afisare in ordine lexicografica
Scris de: Pripoae Teodor Anton din Decembrie 20, 2010, 02:06:35
Cod:
vector <string> Sol;

int main () {
    sort(Sol.begin(), Sol.end());
    std::copy(Sol.begin(), Sol.end(), std::ostream_iterator<string>(std::cout, "\n"));
}


Titlul: Răspuns: Afisare in ordine lexicografica
Scris de: Vlad Eugen Dornescu din Decembrie 20, 2010, 15:06:00
Cod:

#include <algorithm>
...
...

struct elev
{
   char nume[30]; //cuvant din structura ta
   int varsta, etc;
}clasa[2000];

int cmp(elev &a, elev &b) //criteriul dupa care vrei sa sortezi, adica lexicografic dupa nume
{
    if(strcmp(a.nume, b.nume) < 0)
              return 1; //adevarat pentru ca a si b sunt in ordine;
   return 0; //trebuie facuta schimbarea
}

int main()
{
    //citesti
    sort(clasa+ 1, clasa + n + 1, cmp);//cmp-criteriul dpa care sortezi
    return 0;
}


Imi cer scuze daca am gresit ceva, sper ca nu.