这可能是一个愚蠢的问题,但我无法弄清楚为什么会抛出一个分段错误(核心转储):
#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,如果这是一个重要的信息.提前致谢
您的矢量为空,因此您无法访问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.