我想将保存到矢量中的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)
我需要做些什么来解决这个问题?
答案 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)
如果您只想将字符串附加到字符串,则可以使用+ =运算符。