从#define宏填充哈希表

时间:2012-02-17 18:34:50

标签: c++ hashmap

我想通过使用#defined参数填充键来创建哈希映射/表,使用与定义的参数对应的值的哈希值...所以我可以在将来轻松添加更多参数。

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

有没有办法这样做?

1 个答案:

答案 0 :(得分:2)

无论您如何创建表,您都必须通过将这些成员添加到表中来以某种方式显式填充它。因此,如果你的成员是#defined,设置为consts,或者其他什么都没关系 - 工作仍在将它们添加到表中。

我会说你可能做的最好(给定你的目标)是设置#define来实际定义一个值数组,并设置第二个#define来定义该数组的大小。然后,您可以根据大小循环遍历数组,从而填充哈希表。

我认为这听起来像是一种设计气味,你可能想重新思考你正在做的事情并寻找更好的方法 - 比如从数据库或文件中读取?