array von std::strings ?

Thomasio

Erfahrenes Mitglied
Wenn ich ein array von int´s erzeugen will, geht das einfach
Code:
int myarray[] = {0,0,0,0};

Wenn ich das array mit Werten füllen will, ist auch einfach
Code:
for(int i = 0; i < 4; i++)
{
myarray[i] = i;
}

Aber wie geht das mit std::string´s? Geht das überhaupt?

Mir ist klar, dass das Folgende nicht funktioniert, ich gebe es nur mal als Beispiel, damit ihr seht was ich gerne hätte
Code:
std::string mystring[] = {"","", usw};

so dass ich später machen kann:
Code:
mystring[0] = "Text1";
mystring[1] = "Text2";

usw.

und am Ende mit einer Schleife die Texte abrufen kann
Code:
for (int i = 0; i < 10; i++)
{
machirgendwasmit mystring[i];
}

Logisch, ich kann das Ganze einfach ohne Schleife machen, die strings einzeln definieren, jeden mit nem anderen Namen, einzeln füllen und einzeln abrufen, aber ich brauche 73 davon und das wäre mit einer Schleife schon viel komfortabler
 
HiHo,

Du kannst die std::string zB in einem std::vector (ist eine Container-Klasse) speichern, und komfortabel abrufen:

Code:
#include <vector>
#include <string>
#include <iostream>
using namespace std;

typedef vector<string> myList;

int main() {
  string str1 = "Hello";
  string str2 = "World";
  string str3 = "-";
  string str4 = "Hier kommt mein std::string";

  myList L;
  L.push_back(str1);
  L.push_back(str2);
  L.push_back(str3);
  L.push_back(str4);

  for( unsigned int i = 0; i< L.size(); i++ )
    cout << (string)L.at(i) << endl;

  return 0;
}
 
Mir ist klar, dass das Folgende nicht funktioniert, ich gebe es nur mal als Beispiel, damit ihr seht was ich gerne hätte
std::string mystring[] = {"","", usw};
Im Prinzip geht das schon, du musst halt nur string-Objekte in das Array packen:
C++:
std::string mystring[] = { std::string(""),
                           std::string(""),
                           std::string("") };
Gruß
MCoder
 
Das ist sogar noch besser, ist ja logisch, aber darauf bin ich gar nicht erst gekommen
Vielen Dank auch
 
Zurück