min()函数的副作用
Side effect of min() function
我不明白为什么[i]的值无意中修改?评论标记的行应仅修改数组p的值,而不是a的值。我注意到数组值正在修改为副作用。我不知道为什么。
#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给出值之前声明 unsigned int a[N], p[N][N];
!
更改
unsigned int N, Q, K;
unsigned int a[N], p[N][N];
unordered_map<unsigned int, unsigned int> counts_vector;
cin >> N;
to
unsigned int N, Q, K;
cin >> N;
unsigned int a[N], p[N][N];
unordered_map<unsigned int, unsigned int> counts_vector;
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 复制构造函数的奇怪副作用
- min()函数的副作用
- C++按引用传递和按值函数传递副作用
- 在文件范围内使用具有副作用的C++函数,访问singleton
- 通过 const 引用将参数传递给非 void 函数:它是否被视为副作用
- 为什么不删除具有 C++11 中具有副作用的析构函数未定义行为的对象
- 编写调试只生成断言函数,忽略副作用
- 编译器是否可以优化对函数的调用,但可能会产生副作用
- c++:优化函数,没有副作用