ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > table container? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
27.10.2005, 12:04 Uhr Mad_Dog Posts: 1944 Nutzer |
Hallo, Ich bin gerade dabei, ein altes, mit dem Borland C++ Builder (Windows) entwickeltes Programm für den gcc flott zu machen. Dabei bin ich auf folgendes gestoßen: code:table<int,unsigned int> portidz_tab; Einen Container Namens "table" kennt STL aber nicht. Scheint was spezielles von Borland zu sein. Dieser table Container hat - wie ich dem Programm entnehme - die Methoden number_of_lines, index, get_keys und push_back. Leider habe ich nirgens ne Beschreibung dazu finden können. Hat jemand genauere Infos dazu? -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
27.10.2005, 12:42 Uhr Solar Posts: 3680 Nutzer |
number_of_lines? Oh, au, auerha... Da hatte jemand wenig Peilung von der STL. Kanonisch heißt das size(), bei strings auch length()... von daher würde ich fast vermuten, daß dieses Template nicht von Borland kommt. Schau' Dir mal <map> an. Das könnte in etwa das sein, was Du suchst - schwer zu sagen ohne genauere Info dazu, was Dein table<> so leistet. [ - Antworten - Zitieren - Direktlink - ] |
27.10.2005, 13:01 Uhr Mad_Dog Posts: 1944 Nutzer |
Zitat: Wie gesagt: Der ursprüngliche Code stammt nicht von mir. Ich soll das Teil jetzt eben für gcc flott machen... Der Borland Compiler verdaut auch diese seltamen container mit der number_of_lines Methode. Ich hab keine Ahnung, wo dieser Container definiert ist - im Programmcode konnte ich es nirgens finden. Muß wohl aus irgendeiner include-Datei kommen... Zitat: Ja... irgendwie muß ich das wohl ersetzen, oder aber selbst so einen table Container basteln... Vielleicht soll "table" sowas ähnliches wie "pair" sein? -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
27.10.2005, 13:10 Uhr Mad_Dog Posts: 1944 Nutzer |
Hier noch ein paar Codeschnipsel:code:class Porttable { public: //Porttable(ostream * logfile=&cout,const debugmode mode=debug::NODEBUG); ~Porttable(); Porttable & regist(const PolygonGEO & p,const unsigned int index); void print(ostream & os) const; private: table<int,unsigned int> portidz_tab; //int -> interne Portnummer //unsigned int -> Index zum Zugriff auf das zugehörige Polygon im PolygonContainer table<Edge,int> portnr_tab; //Edge -> Kante //int -> interne Portnummer }; Diese Klasse dient dazu, die Anschlüsse eines 3D Modells einer integrierten Microwellenschaltung abzubilden... Und hier kommen die Metoden dieses ominösen "table" Containers zum Einsatz: code:Porttable & Porttable::regist(const PolygonGEO & p,const unsigned int index) { vector<Edge> help; //Kante die untersucht wird vector<unsigned int> polygonidz; //nimmt die Polygonindizes auf int portnr; //Portnummer unsigned int number_of_keys_port; //Anzahl der Schlüssel mit dem Port portnr unsigned int number_of_edges=p.size(); //Anzahl der Kanten im Polygon for(uint32 i=0;i<number_of_edges;i++) //Kanten abgrasen { help=p.getEdge(i); if(!help.empty()) { portnr=help[0].getport(); if(portnr!=0) //Kante hat eine Portnummer -> in Tabellen eintragen { number_of_keys_port=portidz_tab.number_of_lines(portnr); if(number_of_keys_port>0) //Port ist bereits registriert { polygonidz=portidz_tab[portidz_tab.index(portnr)]; if(find(polygonidz.begin(),polygonidz.end(),index)==polygonidz.end()) //wahr wenn Polygonindex noch nicht registriert { portidz_tab.push_back(portnr,index); //portnr_tab.push_back(help[0],portnr); }; } else { portidz_tab.push_back(portnr,index); //portnr_tab.push_back(help[0],portnr); }; }; }; }; return *this; }; -- http://www.norman-interactive.com [ Dieser Beitrag wurde von Mad_Dog am 27.10.2005 um 14:41 Uhr editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
27.10.2005, 13:20 Uhr Solar Posts: 3680 Nutzer |
Bevor Du Dein eigenes table-Template schreibst, durchsuche erst einmal die Header nach einer Definition. (Templatedefinitionen stehen eigentlich immer in einem Header, da die wenigsten Compiler das seit 1998 standardisierte "export" beherrschen.) Wenn Du "template table" nichts findest, such' nach einem entsprechenden typedef davon... [ - Antworten - Zitieren - Direktlink - ] |
28.10.2005, 09:33 Uhr Mad_Dog Posts: 1944 Nutzer |
Zitat: Hab ich gemacht - und nix dabei gefunden. Aber zum Glück hat sich herausgestellt, daß das entsprechende Modul eine von vielen Altlasten in dem Programm war. An dem Teil haben im Laufe der Jahre schon ca. 5 verschiedene Diplomanten oder Praktikanten rumgewerkelt und die ersten zwei davon waren Frauen (nix gegen Frauen, aber sich als Mann in deren Gedankengänge reinzuversetzen ist nicht immer leicht ). Jetzt hab ich dieses < 300000 Zeilen Monster soweit gebändigt, daß es auch vom g++ compiliert wird - nur der Linker zickt noch rum. -- http://www.norman-interactive.com [ Dieser Beitrag wurde von Mad_Dog am 28.10.2005 um 09:38 Uhr editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > table container? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |