引用向量中的成员<struct>不断弹出错误



使用结构向量编译代码时遇到问题。编译器不断发送错误,但我找不到任何错误。代码就在下面。

//2018 USACO Bronze Task 2
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
struct Period{
int end,starting;
};
int main(){
ifstream fin("lifeguards.in");
ofstream fout("lifeguards.out");
int N;
fin>>N;
vector <Period> periods[N];
for(int i=0;i<N;i++){
fin>>periods[i].starting>>periods[i].end;
}
int record=0,temp=0;
for(int i=0;i<N-1;i++){
temp+=periods[i].end-periods[i].starting;
for(int j=0;j<N;j++){
if(j==i)continue;
temp+=periods[j].end-periods[j].starting;
temp-=max(periods[i].end-periods[j].starting,0);
}
if(temp>record)record=temp;
temp=0;
}
fout<<record<<endl;
}

错误消息在链接中错误消息我已经检查了我所知道的任何可能的语法错误,但它不断地弹出编译错误。有什么解决办法吗?

让我们看看这一行:

vector <Period> periods[N];

在这一行中,您定义了向量的数组,所以当您调用periods[i]时,它将返回一个数组项,即vector <Period>,所以这是返回类型而不是Period结构,它是向量类型,所以它是不正确的。为了实现这一点,您应该调用periods[i][j],或者如果您想要N大小的向量,您可以调用reserve方法。

相关内容

最新更新