2010在win7遇到一个奇怪的有关问题
2010在win7遇到一个奇怪的问题
max和min函数,查看帮助,包含这两个均可
#include <algorithm>
#include <stdlib.h>
可是我包含这两个头文件 ,编器还是认为max和 min未定义,怎么解决?
------解决方案--------------------
stdlib.h这里边有定义,是不是在哪里控制宏定义呢
------解决方案--------------------
STL中定义了max和min,所以既然你包含了algorithm头文件,就用STL中的max和min好了,加一行代码即可:
#include <algorithm>
#include <stdlib.h>
using namespace std;
或者不嫌麻烦的在每个min和max的前面加上std::
------解决方案--------------------
std::
------解决方案--------------------
stdlib.h中的max和min定义在std里面,并且有一大堆编译条件
要加上
#define __MFC_COMPAT__
#include <stdlib.h>
void func() {
....
n = std::max(n1, n2);
double ee = std::max<double>(v1, v2);
...
}
才能用
至于加上#define __MFC_COMPAT__后的其它副作用就不好说了
max和min函数,查看帮助,包含这两个均可
#include <algorithm>
#include <stdlib.h>
可是我包含这两个头文件 ,编器还是认为max和 min未定义,怎么解决?
------解决方案--------------------
stdlib.h这里边有定义,是不是在哪里控制宏定义呢
#define randomize() srand((unsigned)time(NULL))
#ifndef max
#define max(__a,__b) (((__a) > (__b)) ? (__a) : (__b))
#endif
#ifndef min
#define min(__a,__b) (((__a) < (__b)) ? (__a) : (__b))
#endif
------解决方案--------------------
STL中定义了max和min,所以既然你包含了algorithm头文件,就用STL中的max和min好了,加一行代码即可:
#include <algorithm>
#include <stdlib.h>
using namespace std;
或者不嫌麻烦的在每个min和max的前面加上std::
------解决方案--------------------
std::
------解决方案--------------------
stdlib.h中的max和min定义在std里面,并且有一大堆编译条件
要加上
#define __MFC_COMPAT__
#include <stdlib.h>
void func() {
....
n = std::max(n1, n2);
double ee = std::max<double>(v1, v2);
...
}
才能用
至于加上#define __MFC_COMPAT__后的其它副作用就不好说了