Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Container mit Zeigern

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.05.2006, 20:42 Uhr
~heman123
Gast


Ich habe einen Container mit Zeigern auf Ameisten(cAnt)
wenn ich den Container so versuche zu befüllen funktioniert es nicht


C++:
class cCollideCell {
[...]  
  vector<cAnt> *Ants[100];
[...]
};


cAnt::UpdateAnt()
{
[...]
  cAnt::itsTribe->itsWorld->CollideCells[iCollideNode].Ants->push_back(&this);
[...]
}




Bei bedarf kann ich auch noch mehr Code posten. Aber ich denke es wird nur etwas ganz simples sein was ich enfach noch nicht weis...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.05.2006, 21:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


meinst du so?

C++:
std::vector<cAnt*> Ants;



push_back dann mit new cAnt(...) aufrufen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.05.2006, 21:06 Uhr
~heman123
Gast


Großes dankeschön an dich Windalf !
Hm wie blöd, das ganze rumgezeiger is mir wohl zu Kopfgestiegen ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.05.2006, 22:06 Uhr
~heman123
Gast


cAnt::UpdateAnt()
{
[...]
cAnt::itsTribe->itsWorld->CollideCells[iCollideNode].Ants.push_back(&this);
[...]
}


da passiert dann ein Fehler in der vector.h bei dieser Zeile:
size_type size() const { return size_type(this->_M_finish - this->_M_start); }

Evtl liegt es daran das ich die Welt Klasse nach vorne und nach hinten verkettet hab:


cCollideArray(vecotr)-cCollideCell(vector)--/
/ , /
cWorld - cTribe(vector) - cAnt(vector)----------/

Also das ganze funktioniert vor und zurück. Evtl Dreht sich da was im Kreis
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.05.2006, 22:17 Uhr
Spacelord
Hoffnungsloser Fall


Warscheinlich ist die Übergabe von &this an push_back nicht wirklich das was du machen möchtest.this ist schon ein Zeiger auf cAnt.
vector.h ist veraltet.Die Standard Header haben keine .h Endung mehr.

Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.05.2006, 20:28 Uhr
~heman123
Gast


noch eine Frage:
Ich habe einen Container mit Zeigern näglich CollideCells
Die Zeiger Zeigen auf ein Objekt vom Type cAnt

Wenn jetzt in der schleife festgestelt das this die aktuelle ameise(this) im CollideCell Container ist dann soll der Zeiger auf die Ameise(this) gelöscht werden


C++:
cAnt::UpdateAnt()
{
[...]
for (int itmpVar = 0; itmpVar != cAnt::itsTribe->itsWorld->CollideCells[cAnt::iCollideCellZ].Ants.size(); itmpVar++) {
  if(cAnt::itsTribe->itsWorld->CollideCells[cAnt::iCollideCellZ].Ants.at(itmpVar)==this) {
    if (cAnt::itsTribe->itsWorld->CollideCells[cAnt::iCollideCellZ].Ants.size() > 0 ) {
      cAnt::itsTribe->itsWorld->CollideCells[cAnt::iCollideCellZ].Ants.erase(this);
    }
  }
}
[...]
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.05.2006, 20:32 Uhr
~heman123
Gast


Sry für die Rechtschreibung bin grade durch den Wind....
Zu erwähnen ist natürlich das das löschen des Zeigers auf die Ameise mittels
cAnt::itsTribe->itsWorld->CollideCells[cAnt::iCollideCellZ].Ants.erase(this);
nicht funktioniert !

Muss wohl mit einem iterator gemacht werden. Wie das geht weis ich nicht. Evtl wäre ein anderer weg besser...

Ich bin dankbar für jede Antwort.
 
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: