vector<string> Zugriff im heap - wie möglich?
-
Hallo,
ich mache gerade Versuche mit dynamischen Array. Das klappt auch soweit bis ich das ganze in den Heap verlegen will.
Hier ein Beispiel:
vector<string> vstr_data; vstr_data.push_back( "Test1" ); vstr_data.push_back( "Test2" ); vstr_data.push_back( "Test3" ); cout << vstr_data[0]; cout << vstr_data[1]; cout << vstr_data[2];Das geht!
vector<string> *pvstr_dat = new vector<string>; *pvstr_dat.push_back( "Test1" )); *pvstr_dat.push_back( "Test2" ); *pvstr_dat.push_back( "Test3" ); cout << *pvstr_dat[0]; cout << *pvstr_dat[1]; cout << *pvstr_dat[2];Das dann nicht

Wie muss ich das ganze angeben, damit ich "richtig" zugreifen kann.
Danke Jürgen
-
*pvstr_dat.push_back( "Test1" )); // hier ist eine Klammer zuviel!!Du kannst auch die vec->push_back(..); schreibweise anstelle von *vec.push_back(..); verwenden.
-
ok die Klammer ist falsch!
Aber das ist nicht das Problem.
cout << *pvstr_dat[0];Die Zeile bringt z.B.
error C2100: illegal indirectionohne *
cout << pvstr_dat[0];C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::vector<_Ty>' (or there is no acceptable conversion)
In was muss ich es umwandeln das es wieder ein ganz "normaler" string wird.
-
Setzte Klammern: (*pvec).push_back(...) oder pvec->push_back(...)
Bzw.:
cout << (*pvstr_dat)[0];
-
OK das geht, hätte ich auch selber drauf kommen können

Danke !!
Gruß
Jürgen