2012-02-17 117 views
1

我想通過使用#defined參數填充密鑰並使用與所定義的參數對應的哈希值創建哈希映射/表...所以,我可以輕鬆地添加更多參數在將來。從#define宏中填充哈希表

 //key //value 
#define paramA 1 
#define paramB 2 

有沒有這樣做的方法?

+0

與宏無關,因爲在編譯器查看源代碼時,所有提到的'paramA'和'paramB'都將消失。你*可以*用*甚至更多的宏來解決這個問題,但是它被忽視了。 – Jon 2012-02-17 18:40:42

回答

2

不管你如何創建表的,你將不得不通過增加這些成員表中明確地以某種方式來填充它。所以,你的成員是否被#defined,設置爲const或者其他什麼都沒有關係 - 工作仍然在將它們添加到表中。

我會說你可以做的最好的(給定你的目標)是設置你的#define來實際定義一個值的數組,並設置第二個#define來定義該數組的大小。然後,您可以通過循環遍歷陣列來根據大小循環填充散列表。

我覺得這聽起來像一個設計的味道,雖然,你可能要重新考慮自己在做什麼,並尋找一種更好的方式 - 就像從一個數據庫或文件也許在看什麼?

+0

謝謝,我想即將實施一系列結構。 – Telenoobies 2012-02-17 18:54:04