我有一个vector <vector <double> >
的功能。在某些时候我想在比较中使用元素的绝对值,并且我得到了错误的行为,所以我放入以下调试行:
std::cout << M[3][2] << " " << abs(M[3][2]) << "\n";
令人惊讶的是,输出是:
0.667 0
为什么会这样?
答案 0 :(得分:8)
您可能正在调用abs
或<stdlib.h>
中定义的<cstdlib>
#include <cmath>
之一,因此您的参数会被截断。
您应该{{1}}选择integral overloads