我正在将一个小 C++ 程序重写为纯 C,这是一个非常简单的程序,它使用map
. 我正在使用静态大小的哈希表(包含大小和指向链接节点列表的指针数组的结构)。我无法将以下部分重写为 C
#if 1 // switch between 1 and 0
# include <tr1/unordered_map>
typedef std::tr1::unordered_map<std::string,int> map_t;
#else
# include <map>
typedef std::map<std::string,int> map_t;
#endif
我主要使用哈希函数实现了无序版本,我是这样使用的
#if 1 // switch between 1 and 0
int hash_function(const char *key, int size);
#else
#define hash_function(key, size) .......
#endif
但现在我不知道宏应该是什么样子,因为我想要订购表格并且我有表格的静态大小。因为我没有使用地图的经验,所以我不知道是否有任何传统的方式来实现这一点。
我想到了将表格用作二维数组,作为简单矩阵,并从上到下逐列填充。
再说一次,有没有更好的传统方式来做到这一点?