所以我有这样的事情
#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];