【发布时间】: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())会成功 -
哦!你完全正确!感谢您指出这一点!
标签: c++ string pointers vector