gpt4 book ai didi

c++ - 非 POD 元素类型的可变长度数组 'set'

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:50:48 28 4
gpt4 key购买 nike

我不知道问题出在哪里。

#include <iostream>
#include <algorithm>
#include <fstream>
#include <set>
using namespace std;

int main() {
ifstream infile("meeting.in");
int FF, NumPaths;
infile >> FF >> NumPaths;
int Paths[NumPaths][4];
set<int> Bessie_Times[FF];
set<int> Elsie_Times[FF];
for(int i=0;i<NumPaths;i++)
{
infile >> Paths[i][0] >> Paths[i][1] >> Paths[i][2] >> Paths[i][3];
}
sort(Paths,Paths+NumPaths);
}

在这些行,我得到了这些错误:

    int Paths[NumPaths][4];

Array type 'int[4]' is not assignable

    set<int> Bessie_Times[FF];

Error 1: Array initializer must be an initializer list

Error 2: variable length array of non-POD element type 'set'

有人知道是什么原因造成的吗?我已经研究过,但似乎找不到任何解决问题的方法。我假设我正尝试在不应该使用的地方使用变量类型,但我找不到这样的实例。

最佳答案

g++ 可以很好地编译您的代码(排序除外)。我不知道这是否违反标准。但无论如何在 C++ 中,你应该使用来自 stdlib 的容器:

#include <iostream>
#include <algorithm>
#include <fstream>
#include <set>
#include <array>

using namespace std;

int main()
{
ifstream infile("meeting.in");
int FF, NumPaths;
infile >> FF >> NumPaths;

std::vector<array<int, 4>> Paths(FF);
std::vector<set<int>> Bessie_Times(FF);
std::vector<set<int>> Elsie_Times(FF);

for(int i = 0; i < NumPaths; i++)
{
infile >> Paths[i][0] >> Paths[i][1] >> Paths[i][2] >> Paths[i][3];
}

sort(Paths.begin(), Paths.end());

return 0;
}

不确定排序;也许你需要添加

sort(Paths[i].begin(), Paths[i].end());

内部循环

关于c++ - 非 POD 元素类型的可变长度数组 'set<int>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641632/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com