所以我有这样的事情

#define HASHSIZE 1010081

static struct nlist *hashtab[HASHSIZE];

现在,我希望能够更改哈希表的HASHSIZE,因为我想测试不同的素数,并查看哪一个可以减少冲突。但是数组的大小不可变,因此HASHSIZE必须为常数。有办法解决吗?

最佳答案

为什么不使用 std::vector 而不是在C++中使用数组?

例如:

  std::vector<nlist *> hashtab;
  hashtab.resize(<some_value>);

但是无论如何,如果您使用g++,则可以执行此操作,因为g++支持可变长度数组(VLA)作为扩展。

例如:
  int HASHSIZE=<some_value>
  static struct nlist *hashtab[HASHSIZE];

08-17 04:43