我有:
vector<string> *history;
history = new vector<string>[300];
其中历史记录应包含多个字符串(最多300个)。
然后我这样做是为了添加一个字符串:
std::stringstream sstm;
sstm << frameProc << " ";
string result = sstm.str();
history[xyz]= result; //This line does not work
但这不起作用。我该怎么做?
答案 0 :(得分:6)
您在这里动态分配vector<string>
数组:
vector<string> *history;
history = new vector<string>[300];
你真正需要的是一个字符串向量:
std::vector<std::string> history;
std::stringstream sstm;
sstm << frameProc << " ";
std::string result = sstm.str();
history.push_back(result);
答案 1 :(得分:1)
如果要回答您的问题
如何在C ++中将字符串添加到字符串向量
然后按以下方式完成
std::vector<std::string> v;
v.push_back( "Some string" );
或
v.insert( v.end(), "Some string" );
如果要考虑您的代码段,那么正确的语句将为
history[xyz].push_back( result );
或
history[xyz].insert( history[xyz].end(), result );
修改强>
另外我想也许你做错了什么不明白你在做什么。然后考虑以下代码。也许它会有所帮助。
std::vector<std::string> history( 300 );
//...
history[xyz] += result;