martes, 12 de febrero de 2013

Ordenar un vector con std::sort() en c++


Este es un ejemplo rapido:


#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <stdio.h>
using std::vector;

struct Ovni{
 Ovni(int ci){
  this->ci=ci;
 }
 int ci;
};

// Función que indicará si un ovni es menor que otro (modificar a su gusto)
bool menorque(const Ovni& o1,const Ovni& o2){
 return o1.ci<o2.ci;
}
int main (int argc, char *argv[]){
 vector<Ovni> vectorDeOvnis;
 vectorDeOvnis.push_back(Ovni(1));
 vectorDeOvnis.push_back(Ovni(3));
 vectorDeOvnis.push_back(Ovni(2));
 vectorDeOvnis.push_back(Ovni(0));

 printf("Antes\n");

 for (uint i = 0; i < vectorDeOvnis.size(); ++i) {
  printf("[ %d ]",vectorDeOvnis[i].ci);
 }
 // Ordena según la regla "menorque"
 std::sort(vectorDeOvnis.begin(),vectorDeOvnis.end(), &menorque);

 printf("\nDespues\n");
 for (uint i = 0; i < vectorDeOvnis.size(); ++i) {
  printf("[ %d ]",vectorDeOvnis[i].ci);
 }
}

Instalar pencil animation en Fedora / Suse x86_64

Intenté compilar el source de pencil y yum me indicaba que fataba "libming.so.1". Tras mucho buscar he conseguido una solución bastante lammer pero que más da :·/

Te puedes descargar el RPM de esta pag:

ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/davjam79/openSUSE_Tumbleweed/x86_64/pencil-0.4.4b-22.3.x86_64.rpm


Luego instalan normalmente: yum install ./pencil-0.4.4b-22.3.x86_64.rpm


y listo


Aquí una captura de pantalla del programa corriendo en mi Fedora 18 x86_64 bajo KDE