gpt4 book ai didi

c++ - 使用 2D vector 大小分配变量的内存

转载 作者:行者123 更新时间:2023-11-30 21:16:47 26 4
gpt4 key购买 nike

这是我的代码,我有一个 2D vector ,我需要将其行和列的大小传递给一个名为visited的新变量,但抛出错误

int main() {
vector<vector<char>>a;
int n= a.size();
int m = a[0].size();
bool vertices= new bool [n][m];

}

出现此错误

Line 5: Char 33: error: array size is not a constant expression
> bool vertices= new bool [n][m];
> ^ Line 5: Char 33: note: read of non-const variable 'm' is not allowed in a constant expression Line 4:
> Char 9: note: declared here
> int m = a[0].size();
> ^ 1 error generated.

无法解析

最佳答案

原始代码尝试通过将三个 block 的宽度相加 (w = w1 + w2 + w3;) 并重复除以强度 S 直到剩余的值来确定所需的命中数宽度w变为零。如果强度 S 为 1(因此 w1w2w3 均为 1,且它们的总和为 3),则将永远循环,导致超过代码的时间限制。

此外,尚不清楚如何通过除法来解决该问题。相反,所述问题涉及减法,而不是除法。

由于堆叠中只有三 block 砖(并且 S 至少是最大砖的宽度),因此只需要考虑三种情况:

if (s >= w1 + w2 + w3)
hits = 1;
else if (s >= w1 + w2 || s >= w3 + w2)
hits = 2;
else
hits = 3;

处理任意大小的砖堆的通用解决方案超出了该问题的范围,因此不需要考虑。

关于c++ - 使用 2D vector 大小分配变量的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59647218/

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