Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ::stable_sort

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.06.2003, 23:02 Uhr
~0xdeadbeef
Gast


::stable_sort gibts nicht, aber std::stalbe_sort ist ANSI-C++, und ist definiert im Hader algorithm. Im Code sieht das so aus:

C++:
#include <algorithm>

//...

std::stable_sort(_var_order_begin(), _var_order.end(), compare_var_stat);


In der glibc ist das so realisiert, dass die /usr/include/c++/${G++-Version}/algorithm die bits/stl_algo.h included, in der std::stable_sort implementiert ist (std::stable_sort ist ne template-Funktion, deswegen reicht eine Deklaration nicht aus).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.06.2003, 01:38 Uhr
Pablo
Supertux
(Operator)


Kennst du auch, wo ich mehr Infos zu dieser Funktion bekomme?
Ich finde komisch, dass ich ohne std stable_order aufrufen kann, nur mit ::

Danke
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: