【问题标题】:Populating a hash table from #define macros从 #define 宏填充哈希表
【发布时间】:2012-02-17 18:34:50
【问题描述】:

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

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

有什么办法吗?

【问题讨论】:

  • 不适用于宏,因为当编译器看到源代码时,所有提到的paramAparamB 都将消失。你可以使用更多的宏来解决这个问题,但它不受欢迎。

标签: c++ hashmap


【解决方案1】:

无论您如何创建表,您都必须通过将这些成员添加到表中来显式地填充它。因此,如果您的成员是#defined、设置为 const 或其他任何内容都没有关系 - 工作仍在将它们添加到表中。

我想说你可能做的最好的事情(给定你的目标)是设置你的#define 来实际定义一个值数组,并设置第二个#define 来定义该数组的大小。然后,您可以通过基于大小循环遍历数组来使用循环填充哈希表。

虽然我认为这听起来像是一种设计味道,但您可能想重新考虑自己在做什么并寻找更好的方法 - 比如从数据库或文件中读取?

【讨论】:

  • 谢谢,我想我要实现结构数组了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多