在c ++中将vector中的char插入字符串

时间:2014-08-22 08:50:27

标签: c++ string vector char

我想将保存到矢量中的char插入字符串变量。

我正在使用此代码,但我收到错误:

result.insert(result.size(), G1[fromPos]);

在此代码中,G1是一个char类型的向量,结果是一个字符串变量。

但是我收到了这个错误:

  

没有重载函数的实例“std :: basic_string< _Elem,_Traits,   _Alloc> :: insert [with _Elem = char,_Traits = std :: char_traits,_Alloc = std :: allocator]“匹配参数列表参数类型为:(size_t,char)

我需要做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:2)

首先,不要使用result.size()作为应放置char的索引,因为它会导致std::out_of_range异常:

  

如果此(pos)大于对象的长度,则抛出out_of_range。

其次,根据std::string::insert规范,要插入单个字符,您应该使用以下重载:

result.insert(index, 1, G1[fromPos]);

如果要将单个字符附加到字符串的 end ,最佳解决方案是使用:

result.push_back(G1[fromPos]);

答案 1 :(得分:1)

如果您只想将字符串附加到字符串,则可以使用+ =运算符。