我仍然從Java轉向C++,而我正在努力拼湊字符串。我需要生成一些字符串並將它們存儲在某個地方,以便在創建它們的對象被銷燬之後它們可用於我的程序。我試圖將它們存儲在一個字符串的矢量中,但我得到一個分段錯誤 - 雙免費。的我在做什麼,並能重現問題的基本版本是在這裏:如何在C++中將生成的字符串存儲在向量中?
storage[0] = makeString();
我會感謝什麼是很多和洞察力:
#include <string>
#include <sstream>
#include <iostream>
#include <vector>
std::string makeString(){
std::stringstream s;
s << "Test string";
return s.str();
}
int main(){
std::vector<std::string> storage;
storage.reserve(1);
storage[0] = makeString();
return 0;
}
調試器在該行標誌着錯誤在這裏,以及如何避免它,請。
快速修復是使用'resize'而不是'reserve'。試圖模擬一個Java StringBuilder也不是最好的想法。他們是不同的語言。 – 2013-02-08 12:42:51
我沒有錯誤,當我編譯這個!。你可以發佈錯誤嗎? – Vijay 2013-02-08 12:46:57