gpt4 book ai didi

c++ - 而大于负数不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:47 24 4
gpt4 key购买 nike

我有一段非常简单的代码,基本上需要从某个数字开始倒数,并将该计数用作数组的索引。

auto bigSize = BigArray.size() - 1;

while(bigSize > -1) {
auto thing = arr[bigSize ];
bigSize--;
}

然而,代码似乎从未在循环内命中任何内容。我也尝试过使用 for 循环:

auto bigSize = BigArray.size() - 1;

for(int i = bigSize ; i >= 0 && i < bigSize ; --i) {
auto thing = arr[i];
}

我觉得我做错了什么,但我似乎找不到。

最佳答案

while(bigSize > -1) {
auto thing = arr[bigSize ];
bigSize--;
}

这永远不会停止。 bigSizeunsigned这意味着它不能包含负值。瞬间bigSize是 0 并且您尝试将其递减它变为 std::numeric_limits<type>::max() . (下溢,不是负数)所以它会继续循环。

要么改变你的条件,要么做bigSize显式 int .

关于c++ - 而大于负数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862775/

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