2017-02-24 102 views
-3

基本上,我只需要在矢量所有的字母填写的字符串。该向量是char类型的,但它不应该是正确的?当我调试它时,它表示字符串的大小仍然是0?这是一段代码。麻烦向量转换为字符串

注:矢量大小为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 
+2

你初始化'complete'到'string's的数组。 – bejado

+0

'complete = new string [final.size()]'你在这里创建一个字符串数组。你想要做的是:而不是使用指针,只需简单的'std :: string'。很确定'std :: string complete(final.data())'会做诡计 – Fureeish

+0

哦!你完全正确!感谢您指出了这一点! –

回答

2

这里是一个一行做到这一点:

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

或:

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

没有为同一个问题一个确切的答案在这里的可能重复:HTTP:// stackoverflow.com/questions/8581832/converting-a-vector-to-string – HDJEMAI