小编mav*_*.01的帖子

为什么我会出现无限循环?简单的问题,简短的代码

如果输入数组为空,则array.size()应该为 0。第一个for,从0array.size() - 1,应该意味着它从0-1,对吗?

for那么,不应输入此值,并且该函数应返回 inversionsCounter 值,该值将是0

但这并没有发生,代码进入了无限循环。为什么是这样?

这是代码:

#include <vector>
#include <iostream>

using namespace std;

int countInversions(vector<int> array)
{    
    int inversionsCounter = 0;
    for (int i = 0; i < array.size() - 1; ++i)
        for (int j = i + 1; j < array.size(); ++j)
            if (array[i] > array[j])
                ++inversionsCounter;

    return inversionsCounter;
}

int main()
{
    vector<int> array = {};
    cout << array.size();
    cout << …
Run Code Online (Sandbox Code Playgroud)

c++ for-loop vector infinite-loop implicit-conversion

2
推荐指数
1
解决办法
221
查看次数

C++ 中 !(n &amp; 1) 和 n &amp; 1 == 0 之间的区别

由于某些原因,在 C++ 中,表达式if(!(n & 1))if(n & 1 == 0)似乎不等价。

有人可以解释为什么会发生这种情况吗?

c++ bit-manipulation bit bitwise-operators bitwise-and

1
推荐指数
2
解决办法
277
查看次数