矢量(char)矢量:核心倾销

Mag*_*nus 0 c++ g++ vector

这可能是一个愚蠢的问题,但我无法弄清楚为什么会抛出一个分段错误(核心转储):

#include <vector>
using namespace std;
vector< vector<char> > samplevct;
int main(void)
{
    samplevct[0].push_back('a');
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

可能有人解释为什么这不起作用?

我使用g ++,Fedora 20,如果这是一个重要的信息.提前致谢

jua*_*nza 8

您的矢量为空,因此您无法访问samplevct[0].您需要使用至少一个元素来填充向量.例如,

#include <vector>

int main()
{
    using std::vector;
    vector< vector<char> > samplevct(1); // size 1 vector
    samplevct[0].push_back('a');         // OK
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有关如何使用的更多信息,请参阅此参考std::vector.