Visual Studio 2017 中的 C++,无法输入循环中的变量

C++ in Visual Studio 2017, can't input variables which are in loop

我正在解决一些简单的问题,但是我有一个问题,我只能输入变量N,M和P,我不能输入循环中的变量tempX和tempY,这是代码:

#include <iostream>
#include <vector>
#include <minmax.h>

using namespace std;

typedef unsigned long long ull;

int main() {
ull n, m, p;
cin >> n >> m >> p;

vector<vector<unsigned short> > field;
field.resize(n);

for (ull i = 0; i < m; i++)
    for (ull j = 0; j < m; j++)
        field[i].push_back(1);



for (ull i = 0; i < p; i++) {
    ull tempX, tempY;
    cin >> tempX >> tempY;
    field[tempX][tempY] = 0;
}

for (ull i = 1; i < n; i++)
    for (ull j = 1; j < m; j++)
        if (field[i - 1][j - 1] != 0 && field[i][j] != 0)
            field[i][j] = min(field[i - 1][j], field[i][j - 1]) + 1;

ull maxLength = 0;
for (ull i = 0; i < n; i++)
    for (ull j = 0; j < m; j++)
        maxLength = max(maxLength, field[i][j]);

cout << maxLength << endl;

return 0;
}

顺便说一句。我在使用 cout 打印简单文本时遇到问题,代码中没有问题,但有些东西阻止打印像 "Hello world" 这样的简单文本,是否与此问题有任何联系?

vector<vector<unsigned short> > field;
field.resize(n);

for (ull i = 0; i < m; i++)
    for (ull j = 0; j < m; j++)
        field[i].push_back(1);

那里已经有一个错误。 m 而不是 n

for (ull i = 0; i < n; i++)

您应该正确命名您的变量。 n 不是一个好名字。 numberOfRowsrowCountmatrixDimension1 可能更好。

顺便用stl.

for (ull i = 0; i < n; i++)
    for (ull j = 0; j < m; j++)
        field[i].push_back(1);

可能是

for (ull i = 0; i < field.size(); i++)
    field[i].resize(m, 1);

它还可以更简单。看看网上的例子就知道了