Der Vergleichsoperator ist nicht in Ordnung. Wenn du zuerst nach snr, dann nach vdatum und zuletzt nach betrag sortieren willst, könnte das z.B. so aussehen:
bool operator<( const struc &w ) const
{
if(snr != w.snr)
return snr < w.snr;
if(vdatum != w.vdatum )
return vdatum < w.vdatum;
return betrag < w.betrag;
}[/code]
Wenn die Performance immer noch nicht ausreicht, könntest du die Daten in eine std::list packen, die hat eine eigene Sortierfunktion, die nur Zeiger vertauscht, und damit gerade bei solchen Objekten, bei denen eine Kopie recht teuer ist, viel schneller ist. Natürlich kann es sein, dass dich eine list an anderer Stelle wieder viel Zeit kosten würde. Du könntest dir auch einen Index erstellen und den sortieren. Kommt halt auf dein Programm an.