void conversionToString(vector<char>& x) {
string s(x.begin(), x.end());
cout << s;
}
int main() {
vector<char> test('a', 'b', 'c');
conversionToString(test);
return 0;
}
我正在尝试取一个字符串并转换为char的向量。在这个示例中,我只是做了一个简单的测试,但在我的实际项目中,我计划接受用户输入并从向量中来回转换字符串。使用在线编译,我收到错误消息:
main.cpp:在函数'int main()'中: main.cpp:11:36:错误:没有匹配函数来调用'std :: vector :: vector(char,char,char)' 矢量测试(&#39; a&#39;,&#39; b&#39;&#39; c&#39;);
我希望得到一些建议,不仅要修复这种方法,还要考虑方法的功能。
答案 0 :(得分:1)
向量的初始化器应该如下所示(仅限C ++ 11):
vector<char> test{'a', 'b', 'c'};
一般来说,你是否应该从一个矢量来回转换&#34;是一个字符串&#34; - 你为什么要这样做?
答案 1 :(得分:1)
您的矢量初始化错误。你需要
vector<char> test{'a', 'b', 'c'};
关于该方法的功能,我在转换中看不到多少意义。您可以打印矢量元素:
for (auto c : test)
{
std::cout << c;
}
答案 2 :(得分:0)
如果你正在使用C ++ 11,你可以使用vector<char>
初始化列表:
vector<char> test{'a', 'b', 'c'};
如果您没有使用C ++ 11,那么您必须以缓慢的方式执行此操作:
vector<char> test;
test.push_back('a');
test.push_back('b');
test.push_back('c');
答案 3 :(得分:-1)
您正在使用函数中已有的字符向量。请改写你的问题。如果你想获取一个std :: string并返回std :: vector,这里有一个函数可以执行:
std::vector<char> StringToChar(std::string str)
{
std::vector<char> charVector;
for (int i = 0; i < str.size(); ++i)
{
charVector.push_back(str.at(i));
}
return charVector;
}