在c++中从vector向string插入一个字符
Insert a char from vector to string in c++
我想插入一个保存在矢量中的字符到字符串变量
我正在使用这个代码,但是我得到了错误:
result.insert(result.size(), G1[fromPos]);
在这段代码中,G1是一个char类型的vector, result是一个字符串变量。
但是我得到这个错误:
没有重载函数"std::basic_string<_Elem, _Traits,_Alloc>::insert [with _Elem=char, _Traits=std::char_traits, _Alloc=std::allocator]"匹配参数列表参数类型为:(size_t, char)
我该怎么做才能解决这个问题?
首先,不要使用result.size()
作为应该放置字符的索引,因为这会导致std::out_of_range
异常:
其次,根据std::string::insert规范,要插入单个字符,应该使用以下重载:如果this (pos)大于对象的长度,则抛出out_of_range
result.insert(index, 1, G1[fromPos]);
如果您想在字符串的结尾追加单个字符,最好的解决方案是使用:
result.push_back(G1[fromPos]);
如果您只想在字符串后面添加一个字符,则可以使用+=操作符
相关文章:
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 使用动态分配将 char* 复制到另一个字符**
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何在不知道对应关系的情况下在字符串中搜索字符并将其分配给另一个字符?
- 如何检查一个字符是否与字符数组中的另一个字符匹配?
- C++:使用另一个字符将一个字符大写
- 我可以得到一个字符 * 到一个 std::sregex_iterator 匹配 str() 吗?
- 使用连续分隔符和空最后一个字符进行拆分
- 如何比较文件中包含的下一个字符
- 如何检查字符串中的最后一个字符是否是某个字符并将其从字符串中删除?(C++)
- 如何从文本文件中一次读取一个字符
- 将一个字符替换为字符串中更多数量的字符,而不删除C++中的其他字母
- 读取输入后,输出丢失了一个字符
- 比较最后一个字符,不区分大小写(带谓词?
- 如果一个字符,比如说"9",我减去"0",我在结果上使用 is 数字,我是真还是假
- 为什么 std::istream::gcount 返回的字符比预期的多一个字符
- 使用 fstream 在空格分隔文件中查看下一项(不仅仅是一个字符)的方法
- 使用 char 将一个字符数组分配给另一个字符数组时出现奇怪的行为
- 在弦乐器中删除最后一个字符