Zweidimensionaler Vector dynamisch erzeugen.
-
Gegeben sind 3 Gruppen mit dazugehörigen linien, welche ich alle in einem vector speicher. Ich greife mittels Sectionlines[i] auf die einzelnen Linien zu.
bisher:
vector<pfcOutline2D_ptr> Sectionlines;ich würde gerne einen zweidimensionalen Vector erstellen, sodass ich bequem mit:
Sectionlines[1][i}->
Sectionlines[2][i]->
Sectionlines[3][i]->mit der ersten Zahl auf die jeweilige Gruppe zugreife und mit der zweiten auf die Linienelemente
klappt nicht :
vector<vector<int,pfcOutline2D_ptr> > Sectionlines;for (i = 0; i < Gruppen.size(); i++)// Gruppendurchlaufen { for (k = 0; k < SectionEntities[i]->getarraysize(); k++)//wenn datentyp linie ist, dann in Sectionlines speichern. { if (strcmp(SectionEntities[i]->get(k)->getCipTypeName(), "wfcSection::SectionEntityLine") == 0) { Sectionlines.push_back(wfcSectionEntityLine::cast(SectionEntities[i]->get(k))->GetLine()); } } }Dankeschön !

-
Was soll das 'int' da?
vector< vector<pfcOutline2D_ptr> > Sectionlines;
-
Ich dachte das ich 2 Datentypen brauche ?
Sectionlines[1][i}->
das erste [] wird doch einfach nur durchnummeriert von der Anzahl der Gruppen, das zweite ist dann mein Datentyp "pfcOutline2D_ptr".
-
Der zweite ist
pfcOutline2D_ptr, der erste istvector<pfcOutline2D_ptr>.D.h. Sectionlines[0] gibt eine Referenz auf
vector<pfcOutline2D_ptr>zurück. Auf dieser wird dann wieder operator[] aufgerufen und dieser gibt dannpfcOutline2D_ptrzurück
-
Habe es jetzt mit
vector< vector<pfcOutline2D_ptr> > Sectionlines; Sectionlines[i].push_back(wfcSectionEntityLine::cast(SectionEntities[i]->get(k))->GetLine());und auch mal mit:
vector<pfcOutline2D_ptr> > Sectionlines[10]; Sectionlines[i].push_back(wfcSectionEntityLine::cast(SectionEntities[i]->get(k))->GetLine());Zu Testzwecken versucht, bei beiden stürzt das Programm ab.
-
Hallo, mit
vector< vector<pfcOutline2D_ptr> > Sectionlines(10); Sectionlines[i].push_back(wfcSectionEntityLine::cast(SectionEntities[i]->get(k))->GetLine());hat es jetzt geklappt, dankeschön !