【发布时间】:2019-08-16 19:22:40
【问题描述】:
我有以下代码,其中我为我的结构创建了一个构造函数,并且我试图将结构分配给向量容器的特定索引。
我收到了一个错误,但难道不能做这样的事情吗?
#include<bits/stdc++.h>
using namespace std;
struct vals{
int a;
int b;
int c;
vals(int x, int y, int z)
:a(0), b(0), c(0)
{
a=x;b=y;c=z;
}
};
vals f(int n, vector<vector<int>> &v)
{
vector<vals> dp(n+1);
dp[1]=vals(v[1][0], v[1][1], v[1][2]);
for(int i=2; i<=n; i++)
dp[i] = vals(max(dp[i-1].b, dp[i-1].c)+v[i][0], max(dp[i-1].a, dp[i-1].c)+v[i][1], max(dp[i-1].a, dp[i-1].b)+v[i][2]);
return dp[n];
}
int main()
{
int n;
cin >> n;
int numAct = 3;
vector<vector<int>> v(n+1, vector<int>(numAct));
for(int i=1; i<=n; i++)
for(int j=0; j<3; j++)
cin >> v[i][j];
vals res = f(n, v);
cout << max(res.a, max(res.b, res.c)) << endl;
}
对于任何想了解代码的人,这是我要解决的问题:link
【问题讨论】:
-
v是vector<int>。所以v[1]会给你一个int。然后你在那个int上做[0]......你想在那里做什么? (这是编译器告诉你的很好的人类版本) -
#include<bits/stdc++.h>loads the gun。using namespace std;takes off the safety。对此要非常小心。 -
相关/欺骗您的新错误:stackoverflow.com/questions/29920394/…
-
@KaranSingh 你应该看到包括整个标准库在内对你的构建时间有什么影响。在我的盒子上,这需要 9s.410ms。使用正确的标题,782ms。您最多可以节省 2 次编译的输入。