【发布时间】:2024-01-20 05:34:01
【问题描述】:
我已经声明了一个字符串向量和一个带有一些值的字符串变量。当我试图将字符串变量的每个字符推回字符串向量时。我收到一个错误。 如果我将字符串向量更改为 char 向量,则代码可以正常工作。
为什么在 push_back() 方法中字符串向量不接受字符?
#include<iostream>
#include<vector>
int main() {
vector<string> vec;
string s = "hello";
int len = vec.size();
for(int i=0; i<len; i++) {
vec.push_back(s[i]);
}
}
错误:没有匹配函数调用 'std::vector >::push_back(char&)'
Fix: vector<char> vec;
【问题讨论】:
-
没有
std::string构造函数可以接受一个char。你想达到什么目的? -
vec.push_back(s[i));括号未匹配。我认为您没有发布生成错误的代码。还缺少头文件<string>. -
我正在尝试使用 vector.push_back() 方法从字符串变量中逐个字符地填充向量。
-
@Janet 将它们保留在
std::string有什么问题?通常std::string是单个字符的最佳容器。如果不是这样,为什么不std::vector<char>? -
@RichardCritten 感谢指出错字,我没有导入字符串,但即使导入后错误仍然存在。
标签: c++ string vector stl char