![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > table container? | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2005-10-27, 12:04 h Mad_Dog Posts: 1944 User |
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 [ - Answer - Quote - Direct link - ] |
2005-10-27, 12:42 h Solar Posts: 3680 User |
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. [ - Answer - Quote - Direct link - ] |
2005-10-27, 13:01 h Mad_Dog Posts: 1944 User |
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 [ - Answer - Quote - Direct link - ] |
2005-10-27, 13:10 h Mad_Dog Posts: 1944 User |
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. ] [ - Answer - Quote - Direct link - ] |
2005-10-27, 13:20 h Solar Posts: 3680 User |
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... [ - Answer - Quote - Direct link - ] |
2005-10-28, 09:33 h Mad_Dog Posts: 1944 User |
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. ] [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > table container? | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |