vector<const char*> oder vector<string>?
-
Eine kurze Frage, auf die ich auf die Schnelle nichts passendes gefunden habe:
Ist es allgemein problemlos möglich, einen std::vector<const char*> als Membervariable zu verwenden?
Verhindert std::vector ein ungültig-Werden des Zeigers bzw. seiner Daten oder sollte ich doch lieber std::string verwenden?
-
Nein. Das verhindert er nicht. Du würdest da ja lediglich einen Zeiger auf einen string speichern, was imo für einen Container ja nicht sehr sinnvoll ist (ausser du willst da wirklich mehrere strings drin speichern).
Um wirklich sicher zu sein, wirst du den string kopieren müssen, was mit
std::stringsicher einfach zu handhaben ist.
-
const char*bietet sich vor allem bei Stringliteralen wie"Hallo"an, da man sich dort nicht um die Speicherverwaltung kümmern muss undstd::stringunnötigen Overhead mit sich bringt. Allerdings bezweifle ich, dass du einenstd::vectormit Stringliteralen füllst, von daher würde ichstd::vector<std::string>vorziehen.
-
Es erstaunt mich ein ums andere Mal wie schnell die antworten hier sind...klasse Jungs!
Ich werd' also std::string verwenden, danke und bis die Tage