?? comm.h
字號:
// Comm.h 公共頭文件
// Ver 1.0.0.0
// 版權所有(C) 何渝, 2002
// 最后修改: 2002.5.31
#ifndef _COMM_H //避免多次編譯
#define _COMM_H
/******
由于NDEBUG是為程序調試(debug)期間使用的,當調試期完畢,程序出
發行版(release)后,NDEBUG將失去作用。為了能夠使assert()函數在發行
版中也可以使用,則定義了下面的條件編譯NDEBUG,意思為:
如果已經定義NDEBUG,則定義宏Assert(x):當x為假時,執行throw,
交由系統已定義的方式處理;否則將Assert(x)定義為函數assert(x),該
函數對 參數x進行測試:x為假時,函數終止程序并打印錯誤信息。
*****/
#ifdef NDEBUG
#define Assert(x) if (!x) throw;
#else //否則用系統定義的函數assert()處理
#include <cassert>
#define Assert(x) assert(x);
#endif //NDEBUG
#include <complex> //模板類complex的標準頭文件
#include <valarray> //模板類valarray的標準頭文件
using namespace std; //名字空間
const float FLOATERROR = 1.0e-6F;
const double DOUBLEERROR = 1.0e-15;
const long double LONGDOUBLEERROR = 1.0e-30;
const double GoldNo = 0.618033399; //黃金分割常數(1.0-0.381966)
//取x絕對值
template <class T>
long double Abs(const T& x);
//取x符號,+-或0
template <class T>
T Sgn(const T& x);
//比較兩float浮點數相等
bool FloatEqual(float lhs, float rhs);
//比較兩float浮點數不相等
bool FloatNotEqual(float lhs, float rhs);
//比較兩double浮點數相等
bool FloatEqual(double lhs, double rhs);
//比較兩double浮點數不相等
bool FloatNotEqual(double lhs, double rhs);
//比較兩long double浮點數相等
bool FloatEqual(long double lhs, long double rhs);
//比較兩long double浮點數不相等
bool FloatNotEqual(long double lhs, long double rhs);
//求x與y的最小值,返回小者
template <class T>
T Min(const T& x, const T& y);
//求x與y的最大值,返回大者
template <class T>
T Max(const T& x, const T& y);
//打印數組(向量)所有元素值
template <class T>
void ValarrayPrint(const valarray<T>& vOut);
//打印某個指定數組(向量)元素值
template <class T>
void ValarrayPrint(const valarray<T>& vOut, size_t sPosition);
#include "Comm.inl" //實現
#endif // _COMM_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -