Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2013, 07:05
mariamgn
 
Fecha de Ingreso: noviembre-2012
Mensajes: 12
Antigüedad: 12 años
Puntos: 0
Pregunta Ordenar vector con struct?

Hola, estoy tratando de ordenar 1 vector que tiene como tipo de datos struct, pero con criterios de comparacion:

1 ejemplo que tenog es el sieguiente:

Entrada:

USA 34 20 13
Mexico 1 1 4
China 28 14 19
Argentina 0 1 1

Salida:
USA
China
Mexico
Argentina

pues para llegar a la salida tengo que compar las primeras columnas, despues las 2das y despues las 3ras, es oro plata y bronce y asi me quedo con el nombre del mejor pais.

Estos datos los he almacenado en un vector de struct, pero al implementar la funcion compare no me funcione como debe ser el criterio de comparacion, en que estoy mal?

estoy probando con 1 ejemplo sencillo primero..aqui le pongo algo..

Código:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <algorithm>

using namespace std;

struct date {   
   int a, b;   
};

bool compare(date x,  date y )
{
     if ( x.a > y.a ) return true;
     else if ( x.a < y.a ) return false;
  return 0;
} 

int main () 
{
    
    vector<date> vect;
    
    date x;
    x.a = 5;
    x.b = 9;
    
    date y;
    y.a = 5;
    y.b = 7;
    
    date z;
    z.a = 5;
    z.b = 99;
    
    vect.push_back(x);
    vect.push_back(y);
    vect.push_back(z);
    
    sort(vect.begin(), vect.end(), compare);
    
    for (int i =0; i < vect.size(); i++)
      cout<< vect[i].a <<" "<<vect[i].b << endl;
    
    system("pause");
}
saludos
mariam