我不明白为什么无意中修改了[i]的值?由注释标记的行只能修改数组p的值,而不能修改数组的值。我已经注意到数组的值正在被修改为副作用。我无法弄清楚为什么。min()函数的副作用
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unsigned int N, Q, K;
unsigned int a[N], p[N][N];
unordered_map<unsigned int, unsigned int> counts_vector;
cin >> N;
for (unsigned int i = 0; i < N; i++) {
cin >> a[i];
p[i][i] = a[i];
for (unsigned int j = 0; j < i; j++) {
p[j][i] = min(p[j][i - 1], a[i]); // why is the value of a[i] getting modified?
}
}
for (unsigned int k = 0; k < N; k++) {
cout << "a: "<<a[k]<< endl;
}
}
是什么的一个'[N]的大小期间'此刻的代码 '达到' 声明执行时间? – Grzegorz
min不会更改传递给它的值。您确定首先使用正确的值填充它。 –
@Grzegorz N = 5 – ibp73