基于输入的C++分段错误

基于输入的C++分段错误,c++,C++,在这个程序中插入一个输入文件后,我遇到了一个分段错误。我找不到问题出在哪里,有人能帮我解决这个问题吗?这是USACO培训milk2问题的解决方案 #include <algorithm> #include <bitset> #include <limits> #include <climits> #include <cmath> #include <cstring> #include <ctime> #inclu

在这个程序中插入一个输入文件后,我遇到了一个分段错误。我找不到问题出在哪里,有人能帮我解决这个问题吗?这是USACO培训milk2问题的解决方案

#include <algorithm>
#include <bitset>
#include <limits>
#include <climits>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main ()
{
   std::ifstream in ("milk2.in");
   std::ofstream out ("milk2.out");
   std::vector< pair <int,int> > v;
   int n,i,maxn,maxs,t,ts;

   in >> n;
   for (i = 0; i < n; i++)
   {
     in >> v[i].first >> v[i].second;
   }

   for (i = 0; i < n; i++)
   {
     if (v[i].second<(v[i+1].first)
     {
      t=v[i+1].first-v[i].second;
      if (t>maxn){
        maxn=t;
      }

     }
    else
    {
      ts=v[i+1].second-v[i].first;
      if (ts>maxs)
      {
        maxs=ts;
      }
    }
   }
   out << maxs <<" "<< maxn;
   return 0;
}

创建向量v时,它是空的。所以任何索引,即使是零,都是非法的


您需要首先在向量中创建条目,例如通过执行。

断层线将有助于。。。