hallo möchte mir die klasse vector nachschreiben wenigstens die wichtigsten sachen. kann ich die speicheranforderung auch per templatefunktion über realloc oder malloc machen oder wärs einfacher über allocator über die bibliothek memory??
-- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
malloc reicht da nicht, du musst schon new[] nehmen - sonst werden keine Konstruktoren ausgeführt. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Da kannst du ja mal auf Boby's Seite schaun, der hat letztens erst einen Artikel darüber geschrieben. Zumindest über eine List, die ähnlich benutztbar ist wie std::vector -> www.gwebspace.de/bluexenon/tutorial_list_ger.htm Du solltest dich aber mit den Iteratorarten auskennen, da std::vector die Klasse ist, die die komplexesten Iteratoren unterstüzt. -- perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
malloc reicht da nicht, du musst schon new[] nehmen - sonst werden keine Konstruktoren ausgeführt.
was auch gleichzeitig eines seiner probleme sein kann .... Fuer new[] brauchst nen Standardkonstruktor. Wenn er den logisch nicht braucht, waers doof den nur wegen dem container an der elementklasse zu implementieren. Fuer container mit Mengen- Konstruktion / einfuegen kann man immer noch das element angeben lassen aus dem die einzufuegenden Elemente kopiert werden sollen, und er kann sich den Standard Ctor sparen. Dann kommt er auch mit dem new[] nicht weiter sondern wird den speicher ohne konstruktor anfordern (da bietet sich nen allocator an klar) und dann den CCtor mit dem Vorgabeelement manuell aufrufen muessen. So scheusslich das auch aussieht, aber bei containern macht das durchaus sinn ...
Ciao ....Dieser Post wurde am 12.03.2007 um 16:24 Uhr von RHBaum editiert.