巨集與vector去重
阿新 • • 發佈:2018-11-27
一。VS中新增預處理巨集的方法:
除了在.c及.h中新增巨集定義之外,還可以採用如下方法新增巨集定義:
1、若只需要定義一個巨集(如#define DEBUG),可以右鍵點選工程-->屬性-->c/c++-->前處理器-->前處理器定義,點選下拉框中的編輯,輸入想要定義的巨集;
2、如果還需要定義巨集的內容(如#define inline __inline),可以右鍵點選工程-->屬性-->c/c++-->命令列,在其它選項中輸入如下內容: /D"inline"=__inline 。
二。帶引數的巨集定義:
#define max(A,B) ((A) > (B) ? (A) : (B))
被替換後的語句: x=max(p+q, r+s);
被替換後的形式 : x=((p+q) > (r+s) ? (p+q) : (r+s));
如果對各種型別的引數的處理是一致的,則可以將同一個巨集定義應用於任何資料型別,則無需針對不同的資料型別需要定義不同的max函式。 但是max存在一定的缺陷。作為引數的表示式需要計算兩次,如果表示式存在副作用(比如含自增運算子或輸入/輸出),則會出現不正確的情況。例如:
max(i++, j++) //錯誤
。。。
--------------------- 引用自https://blog.csdn.net/GUI1259802368/article/details/79466818
三:使用巨集定義的函式:
//註釋了並不是不能用而是功能用不到這段程式碼