无法将向量转换为字符串

Posted

技术标签:

【中文标题】无法将向量转换为字符串【英文标题】:Trouble converting vector to string 【发布时间】:2017-02-24 23:53:00 【问题描述】:

基本上我只需要用向量中的所有字母填充字符串。向量的类型是 char,但它应该没关系吧?当我调试它时,它说字符串的大小仍然是0?这是一段 sn-p 代码。

注意:向量大小为 7(在输出中测试),因此问题似乎不在于向量。

vector<char> final; //note this gets filled before reaching the loop
// fills vector in here, size is now 7

string* complete;
complete = new string[final.size()]; //set size of string to vector size
//debugger says size of complete is 0????
for (int i = 0; i < final.size(); i++) 
    complete[i] = final[i]; //should fill string


cout << "COMPLETE:" << *complete << endl; //one letter output

【问题讨论】:

您正在将complete 初始化为strings 的数组。 complete = new string[final.size()] 你在这里创建了一个字符串数组。您要做的是:不要使用指针,只需使用简单的std::string。很确定std::string complete(final.data()) 会成功 哦!你完全正确!感谢您指出这一点! Converting a vector to string的可能重复 【参考方案1】:

这里有一个单行代码:

string complete(final.begin(), final.end());

或:

string complete(final.data(), final.size());

【讨论】:

这里有同样问题的准确答案:***.com/questions/8581832/…

以上是关于无法将向量转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

r 闪亮错误 as.vector(x, "character") 中的错误:无法将类型“闭包”强制转换为“字符”类型的向量

如何将字符串向量转换为特定结构的向量

将字符串向量转换为双二维数组向量

如何将向量转换为特定类型的字符串

将字符串向量转换为 int

如何将包装为字符串的向量转换为熊猫数据框中的numpy数组?