Post para franquito

Fecha: September 7th, 2009 | Categoría: Informatica | 1 Comment »

Cómo ordenar estructructuritas propias:

  1. struct Empleado{
  2.     string nombre, apellido;
  3.     int salario;
  4.     int horario_entrada, horario_salida;
  5. };

Funcion para compararlos (en realidad es una relacion de orden total, el menor o igual, ya que si f(a,b) es falsa y f(b,a) también, la STL asume que tus elementos son iguales)

  1. bool compara_empleados(const Empleado &a, const Empleado &b){
  2.     if (a.salario == b.salario){
  3.         if (a.apellido == b.apellido)
  4.             return a.nombre < b.nombre;
  5.         return a.apellido < b.apellido;
  6.     }
  7.     return a.salario < b.salario;
  8. };

Y acá le decimos que ordene

  1. #include <vector>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. vector<Empleado> empleados;
  6.  
  7. // Agregar empleados
  8.  
  9. sort(empleados.begin(), empleados.end(), compara_empleados);

  • Franco

    Copado, al sort ya lo probé con el "ubicar", que era fácil pero estaba bueno como para probar esto, ahora me queda probar en práctica las estructuras =P
    Por cierto, ¿Por qué incluís "algorithm"?
    Bueno, nada más por ahora, gracias.

    Franco.