000
19.06.2003, 22:30 Uhr
Pablo
Supertux (Operator)
|
Servus kennt einer von euch, ob diese Funktion eine ANSI funktion ist? ::stable_sort
Also, ich arbeite an einem Programm der Uni. Prinston, genau gesagt, an einem SAT Solver (SAT = SATISFIABILITY PROBLEM) und das Programm überprüft ob eine in KNF gegebene boolsche Funktion die leere Menge nicht als ON-Menge hat. Was das Programm tut es ganz uninteressant für meine Frage. Ich habe ein ganz ganz langen Vector mit den boolschen Variablen die Vorkommen und deren Gewichtungen (Wie viel mal sie überhaupt als positiv / negativ literal vorkommen, usw...) Nach einer bestimmt Anzahl der Durchläufe des Algorithmus wird der Vector neu sortiert, dazu benutzt man die funktion ::stable_sort, bsp:
C++: |
pair<CVariable*, int>_var_order; //wo alles gespeichert werden muss und sortiert wird init(_var_oder); //initialisiert vector ::stable_sort(_var_order.begin(), _var_order.end(), compare_var_stat);
|
Die Funktion compare_var_stat ist eine selbst geschriebene Funktion, welche zurückgibt, ob eine CVariable größere bzw. kleinere Gewichting als eine zweite CVariable hat. Das ist die Definition der Funktion compare_var_stat
C++: |
inline bool compare_var_stat(const pair<CVariable *, int> & v1, const pair<CVariable *,int> & v2)
|
Mir ist klar, was ::stable_sort macht, und wie sie funktioniert, und warum man compate_var_stat als Argument übergibt. Meine Frage ist, wo zum Teufel ist die Funktion ::stable_sort. Ich hab den ganzen Source Code nach der Definition von ::stable_sort gesucht und erfolglos beendet. Wenn es Windows wäre, dann würde ich sagen,. es handelt sich um eine API Funktion, aber das ist Linux, also keine API Funktion. Ist diese eine ANSI Funktion???
Danke -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |