我不明白爲什麼無意中修改了[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