在c++中从vector向string插入一个字符

Insert a char from vector to string in c++

本文关键字:一个 字符 插入 中从 c++ vector string      更新时间:2023-10-16

我想插入一个保存在矢量中的字符到字符串变量

我正在使用这个代码,但是我得到了错误:

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异常:

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

其次,根据std::string::insert规范,要插入单个字符,应该使用以下重载:
result.insert(index, 1, G1[fromPos]);

如果您想在字符串的结尾追加单个字符,最好的解决方案是使用:

result.push_back(G1[fromPos]);

如果您只想在字符串后面添加一个字符,则可以使用+=操作符

相关文章: