【问题标题】:How to add string to vector of string in C++如何在 C++ 中将字符串添加到字符串向量
【发布时间】:2023-03-17 14:34:01
【问题描述】:

我有:

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

但这不起作用。我该怎么做?

【问题讨论】:

  • 这不起作用,因为resultstring,但historyvector 的数组。
  • @Manu343726:在我看来,OP 根本不想要vector &lt;vector&gt;。他们想要一个集合(最多)300 个strings。他们在这里做的是完全错误的事情。 (抱怨不阅读省略的文档)

标签: c++ string vector add


【解决方案1】:

您在此处动态分配vector&lt;string&gt; 数组:

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);

【讨论】:

  • 但我想将每个字符串作为一个完整的字符串。我应该将其更改为 history.push_back(result);那么呢?
  • @user3236180 抱歉,我的意思是push_back(result)(或push_back(sstm.str())。)
【解决方案2】:

如果回答你的问题

如何在 C++ 中将字符串添加到字符串的向量中

然后按照下面的方式完成

std::vector<std::string> v;

v.push_back( "Some string" );

v.insert( v.end(), "Some string" );

如果考虑你的代码 sn-p 那么正确的语句会看起来

history[xyz].push_back( result );

history[xyz].insert( history[xyz].end(), result );

编辑:

另外我认为也许你做错了什么不了解你在做什么。然后考虑下面的代码。也许会有所帮助。

std::vector<std::string> history( 300 );
//...
history[xyz] += result;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多