Come usare std :: sort con un vettore di strutture e confrontare la funzione?

Grazie per una soluzione in C , ora mi piacerebbe ottenere questo risultato in C ++ usando std :: sort e vector:

typedef struct { double x; double y; double alfa; } pkt; 

vector wektor; riempito usando push_back (); confrontare la funzione:

 int porownaj(const void *p_a, const void *p_b) { pkt *pkt_a = (pkt *) p_a; pkt *pkt_b = (pkt *) p_b; if (pkt_a->alfa > pkt_b->alfa) return 1; if (pkt_a->alfa alfa) return -1; if (pkt_a->x > pkt_b->x) return 1; if (pkt_a->x x) return -1; return 0; } sort(wektor.begin(), wektor.end(), porownaj); // this makes loads of errors on compile time 

Cosa è corretto? Come usare correttamente std :: sort in quel caso?