Smart-Pointer oder std::string?
-
Hilfe Hilfe Große Not schrieb:
Bei std::string bin ich mir nicht sicher. Löscht der Destruktor das von mir allozierte C-String?
Nein der löscht nur seine eigenen Sachen. Aber mit
std::stringbrauchst du ja auch keinen 'c-string' mehr.Ansonsten gibt es für Arrays von boost die smart pointer
shared_arrayoder
scoped_array
http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/smart_ptr.htm
-
Zu Boost greife ich erst zu, wenn die Standardbibliothek sowas nicht anbietet.

Ist das der Fall?
-
std::vector<char>
-
Hilfe Hilfe Große Not schrieb:
Zu Boost greife ich erst zu, wenn die Standardbibliothek sowas nicht anbietet.

Ist das der Fall?Die STL bietet der
stringundvector. Das sollte doch reichen oder wie was wo?
-
Da hast du recht, aber wenn ifstream eine Funktion anbietet, die diese Signatur hat
istream& read ( char* s, streamsize n );kann ich ja auch nicht viel machen. Ich könnte zeilenweise auslesen und in den std::string stopfen, nur denke ich, dass das nicht perfomant ist.
-
vector<char> v(100); stream.read(&v[0], v.size());Edit:
v.size()ist besser als 100
-
ipsec schrieb:
vector<char> v(100); stream.read(&v[0], 100);ah das ist ja mal toll!
danke
-
als zweiten parameter kann man im übrigen auch
v.size()nehmen ;o)bb
-
Dürfte ich noch fragen, wieso ihr alle Boost empfiehlt?
Wenn ich beim GCC so rumblätter finde ich das hier
http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00273.html
Oder gibt es da unterschiede?
-
shared_ptr ist was anderes als shared_array... wie der name schon sagt.
Schau einfach mal in die boost doku.
-
Hilfe Hilfe Große Not schrieb:
Dürfte ich noch fragen, wieso ihr alle Boost empfiehlt?
Wenn ich beim GCC so rumblätter finde ich das hier
http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00273.html
Oder gibt es da unterschiede?
Das ist die Zukunft. In C++0x wird es einen
shared_ptrgeben, gewisse Kompiler unterstützen schon Teile davon. Im TR1 (Technical Report 1), welcher die meistens Kompiler unterstützen, befindet sich auch einshared_ptr(std::tr1::shared_ptr).Grüssli