2017-02-24 112 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