gpt4 book ai didi

c++ - 使哈希表成为用户输入的大小

转载 作者:行者123 更新时间:2023-11-30 01:42:17 26 4
gpt4 key购买 nike

所以据我所知,哈希表几乎是一个链表数组,所以我试图让一个数组成为特定用户输入的大小,所以如果用户输入“5”,就会有 5 个桶(或索引)在哈希表中。问题是,当我尝试在我的 .h 文件中创建数组时,它说数组长度必须是一个常量。我应该在 .h 以外的其他地方定义它,还是可以用其他方式来定义它?谢谢!

这是我的 .h 文件:

#include <string>


using namespace std;

struct athlete{

string discipline;
string gender;
string team;
string event;
string venue;
string medal;
string name;
string country;
athlete* next;

};


class hTable{

private:
int tableSize; // need this to be user input
athlete* HashTable[tableSize]; // hashTable is an array of athletes


public:
hTable();
int Hash(string key);
  • 另外我很抱歉语法英语不是我的第一语言

最佳答案

如果你想要一个动态大小的数组,它需要被动态分配。

HashTable = new athlete[tableSize];

并且在头文件中 HashTable 将被定义为:

athlete* HashTable;

使用 std::unique_ptr 可能更好,因为它使内存清理更容易。

通常 std::vector 是比普通数组更受欢迎的数据结构。

郑重声明,哈希表不仅仅是一个链表数组。

关于c++ - 使哈希表成为用户输入的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com