Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
STL

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
axeljaeger
Gast





BeitragVerfasst am: 07. Jul 2002 11:18   Titel: STL

Ich hab eine Frage zur Standart Template Library (STL)
(jaja, ich kenne Google und hab mir auch schon zwei Tutorials runtergeladen)

Ich speichere Fenster für einen Windowmanager in einer STL-Map
mit strings als Schlüssel. Ich hab mir dazu einen Typ gebastelt:

typedef map<string,XLBase*> Hashtable; // (XLBase ist die Basisklasse für die Fenster)
typedef Hashtable::iterator Hashentry;

Ich verwende OpenGL als Grafiksystem, deshalb wird das Fenster, das intern
als letztes in die Hashtable gespeichert wird, als oberstes Fenster gezeichnet.
Ich brauche jetzt eine Funktion, die einen Eintrag in der Mitte der Hashtable
rausfischt, und ihn hinten wieder anhängt.

ich hatte mir da eine Funktion geschrieben:

void XLWidget::bringToFront(XLWidget* newfront) //
{
childs.erase(newfront); // childs ist die Hashtable
childs[newfront->getName()] = newfront; // Neuen Eintrag mit dem
} // Namen des Fensters erzeugen

Die funktioniert aber nicht, es gibt offenbar keine erase-Funktion.


Wer weis Rat? Gibt es evtl. noch eine schlauere Lösung als rausnehmen und wiederanhängen?
 

Udo Msslo
Gast





BeitragVerfasst am: 07. Jul 2002 21:35   Titel: Re: STL

Erase-Funktion gibt es wirklich nicht, aber dafür zwei erase-Methoden:

erase( *position ) // Paar an Iteratorposition löschen, oder in Deinem Fall
erase( &key ) // Paar mit Schlüssel key löschen, key dürfte wohl Dein ->getName liefern.

Vielleicht solltest Du, anstatt etwas umzuordnen, einen Index führen.
 

axeljaeger
Gast





BeitragVerfasst am: 09. Jul 2002 14:27   Titel: Re: STL

ja, das mit der Index-Variable ist keine schlechte Idee, so wie ich das mit dem Umordnen vorhatte, funktioniert es gar nicht. Ich weis nur noch nicht, wie ich das mit der Indexvariable so mache, das die Widgets in der richtigen Reihenfolge gerendert werden. Ich müsste sie ja trotzdem irgendwie sortieren
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy