试图从矢量初始化字符串。我应该得到“嘿”作为输出。但我得到了“分段错误”。我做错了什么?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