这段代码给我一个错误

struct state{
    int time_taken;
    vector<int>time_live;
    string loc_name;
    vector<int>loc;
};


for(int u=0;u<(A[start].loc.size());u++)
{
  l=A[start].loc[1];
  if(A[l].time_taken < min_time)
  {
    min_time=A[l].time_taken;
    finish = l;
  }
}

这给出了分割错误。

最佳答案

首先,如果A[start]超出范围,则可能会出现问题,这可能是段错误,也可能不是,这取决于A是什么。

其次,在循环中有A[start].loc[1],如果A[start].loc为空,它将超出范围。您是说loc[u]吗?

关于c++ - 尝试在结构内部打印 vector 大小时出现段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3769721/

10-11 22:35
查看更多