Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 12 Enero 2013, 18:03 pm



Título: ayuda con estructuras c++
Publicado por: indict en 12 Enero 2013, 18:03 pm
Querría hacer una función que dada un número n de países me ordene por países,  ejemplo:

españa 120
francia 70
españa 50
perú  100
francia 80


me ordene por españa 120, españa 50, francia 70, francia 80, perú 100

Gracias

Código:
#inlcude<iostream>
#include<vector>
#include<algorithm>

using namespace std;

struct pais{
       string nom;
       int q;};
       
int main(){
int n;
cin>>n;
vector<pais>v(n);
int i=0;
while(i<n){
           cin>>v[i].nom;
           cin>>v[i].q;
           i=i+1;}     
       
sort(v.begin(),v.end(),ordena_nom);







vector<pais>total();

total.push_back(v[0]);

int main(){

int i=1;

while(i<v.size()){
                 
                  if (v[i].nom==v[i-1].nom){
                  totals[total.size()-1].quantitat=total[total.size()-1].quantitat + v[i].quantitat;}
                  else {p.nom=v[i].nom;
                  p.q=v[i].q;
                  total.push_back(p);}


Título: Re: ayuda con estructuras c++
Publicado por: dooque en 16 Enero 2013, 03:07 am
Hola!

No leí el código pero no veo tu pregunta/problema/duda al respecto! Por lo que no se como ayudarte.

Saludos.


Título: Re: ayuda con estructuras c++
Publicado por: zonahurbana en 16 Enero 2013, 03:33 am
No lo he probado, pero esto debería andar bien:
Código
  1. pais temp;
  2. for(int i=0; i<v.size(); ++i)
  3. for(int j=i+1; j<v.size(); ++i)
  4. if( (v[i].nom > v[j].nom) || (v[i].nom == v[j].nom && v[i].q < v[j].q) )
  5. temp = v[i];
  6. v[i] = v[j];
  7. v[j] = temp;


Título: Re: ayuda con estructuras c++
Publicado por: BlackZeroX en 16 Enero 2013, 03:48 am
@zonahurbana
Si te fijas bien el usa ya el proceso sort()... PERO NO DICE ni aclara su problema.

En el sort() usas el proceso ordena_nom() pero no dejas su código... ¿Si te COMPILA este código? yo creo que no.

Dulces Lunas!¡.