String Pointer mit new
-
realEngine2000 schrieb:
Habs selbst rausgefunden
rel = new string*[zeile];
Sehr fantasievoll.

-
Di willst hier so etwas wie ein zweidimensionales Array aus Strings anlegen? Benutze zumindest std::vector für so etwas
-
Wieso ? vector . Vektor ist eine eigenes Objekt das Array wird nicht wachsen es ist konstant
also ich will eine tabelle in meinem Objekt abspeichern.
-
Wie schauts eigentlich aus mit dem new Operator muss ich da abfragen ob NULL zurückgeliefert wird oder wirft new von selbst ne exception ?
-
realEngine2000 schrieb:
Wie schauts eigentlich aus mit dem new Operator muss ich da abfragen ob NULL zurückgeliefert wird oder wirft new von selbst ne exception ?
wirft normal std::bad_alloc, ausser du konstruierst mit std::nothrow-argument, dann ist der rückgabewert einfach nullptr.
-
realEngine2000 schrieb:
Wieso ? vector . Vektor ist eine eigenes Objekt das Array wird nicht wachsen es ist konstant
Wo ist das Problem? Du musst die Möglichkeit zu wachsen ja nicht nutzen. Wenn du ohnehin den Platz auf dem Heep anlegst hat Vector auch keinen Overhead aber ist sehr viel sicherer als ein manuelles new.
-
vector<vector<string>> rel(zeile,spalte);Dürfte genau das machen was du jetzt machst nur besser. Prinzipiell könnte man noch versuchen das alles als kontinuierlichen Speicherbereich anzulegen wenn es schnell sein soll.
-
Zumindestens std::array kannst dann nehmen
-
Skym0sh0 schrieb:
Zumindestens std::array kannst dann nehmen
Momentan sind seine Grenzen ja keine kompilezeitkonstanten, daher auch das new. Zumindest dachte ich das. Ansonsten hätte er ja gleich
string ref[10][10]schreiben können.
-
ja so wie TNA gesagt hat es steht nicht fest. TNA das mit den Vektoren ist gut. Ist aber nicht meine Methode ein bisschen schneller ???
-
Nein.
-
Und selbst wenns ungefähr 0.001 Nanosekunden schneller wäre, würdest du dann freiwillig auf die ganzen Komfortfunktionen und Sicherungen im Debugmodus verzichten wollen?
-
Skym0sh0 schrieb:
Und selbst wenns ungefähr 0.001 Nanosekunden schneller wäre, würdest du dann freiwillig auf die ganzen Komfortfunktionen und Sicherungen im Debugmodus verzichten wollen?
Dann würde ich einen eigenen Vector schreiben, der das Problem nicht hat.
-
volkard schrieb:
Skym0sh0 schrieb:
Und selbst wenns ungefähr 0.001 Nanosekunden schneller wäre, würdest du dann freiwillig auf die ganzen Komfortfunktionen und Sicherungen im Debugmodus verzichten wollen?
Dann würde ich einen eigenen Vector schreiben, der das Problem nicht hat.
