我会得到一个分段故障,但我不使用任何指针。当我插入Stringstream时,这发生了。
std::string Relations::toString()
{
std::stringstream restring;
restring << ID << "(";
restring << reList[0]; // segmentation fault
for (int c = 1; c < reList.size(); c++)
{
restring << "," << reList[c];
}
restring << ")";
return restring.str();
}
我回答了自己的问题,使我意识到这是一个愚蠢的问题。我在另一堂课中使用了这个班级,我的矢量没有什么。因此,我试图访问空矢量。
访问reList[0]
之前,您必须检查它。
std::string Relations::toString()
{
std::stringstream restring;
restring << ID << "(";
if (reList.size() > 0)
{
restring << reList[0];
for (std::size_t i = 1; i < reList.size(); ++i)
{
restring << "," << reList[i];
}
}
restring << ")";
return restring.str();
}