今天写程序时在VC6.0中用到了函数max()和min()来求最大值和最小值,结果发现VC6.0不支持这两个函数,这应该是vc的问题吧,连标准库函数都不支持,不过这也正常,毕竟VC6.0不支持C++标准。本人自己写了这两个函数,C++标准库是这样实现的,所以可以当作库函数使用。
max()和min()函数的实现如下:
InBlock.giftemplate< class T, class Compare>
InBlock.gifinline const T& max( const T& a, const T& b, Compare comp)
InBlock.gif{
InBlock.gif   return comp(a, b) ? b : a;
InBlock.gif}
InBlock.gif
  template< class T, class Compare>
InBlock.gifinline const T& min( const T& a, const T& b, Compare comp)
InBlock.gif{
InBlock.gif   return comp(b, a) ? b : a;
InBlock.gif}
使用方式如下:
InBlock.gif bool int_less( int a, int b)
InBlock.gif{
InBlock.gif   return a < b;
InBlock.gif}
InBlock.gif int main()
InBlock.gif{
InBlock.gif   int a = 10;
InBlock.gif   int b = 20;
InBlock.gif   int result;
InBlock.gif  result = max(a, b, int_less);
InBlock.gif  cout << "max(a, b): " << result << endl;
InBlock.gif  result = min(a, b, int_less);
InBlock.gif  cout << "min(a, b): " << result << endl;
InBlock.gif   return 0;
InBlock.gif}