試圖從矢量初始化字符串。我應該得到「嘿」作爲輸出。但我得到了「分段錯誤」。我做錯了什麼?vector <char> to string segmentation fault
//write a program that initializes a string from a vector<char>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<char> cvec;
cvec[0]='h';
cvec[1]='e';
cvec[2]='y';
string s(cvec.begin(),cvec.end());
cout<<s<<endl;
return 0;
}
爲了增加Mysticial的答案 - 'cvec [0]' (和其他訪問)不會調用邊界檢查,並且您的向量沒有元素,因此您正在訪問尚未分配給您的某些內存。 – birryree