哈希映射使用 nullptr c++ 初始化节点的动态数组
Hashmap initializing dynamic array of nodes with nullptr c++
我在使用 nullptr 正确初始化节点的动态数组时遇到问题。
HashMap::HashMap(int size)
{
this->sizeOfArray = size;
this->hashArray = new Node*[this->sizeOfArray];
for (int i = 0; i < this->sizeOfArray; i++)
{
hashArray[i] = nullptr;
}
}
这就是我的"哈希数组"在标题中的样子。
Node **hashArray;
forloop 完成了所有 500 个循环,但是当我查看数组中的数据时,我只能看到第一个元素,然后才能得到"无法读取内存"。
这是我的意思的图片 https://ibb.co/d0GLw9
这是节点的样子
Node()
{
value = 0;
}
Node(std::string input)
{
key = input;
value = 1;
next = nullptr;
}
Node(std::string input, int count)
{
key = input;
this->value = count;
next = nullptr;
}
Node(std::string input, int count, Node *next)
{
key = input;
this->value = count;
this->next = next;
}
Node *next;
std::string key;
unsigned int value;
我怀疑这个问题导致我以后无法向哈希数组添加任何新节点。
所有 500 个Node
指针都是NULL
的,但是hashArray
的类型是Node **
,这就是为什么调试器只显示一个元素,就好像它是指向一个Node
指针的指针一样。换句话说,由于数组是动态的,调试器不知道要显示多少个元素。
您遇到的错误是关于查看指针为NULL
的第一个Node
的内容,这自然是无法读取的。
相关文章:
- 反向给定链表中的K节点
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- C++中的动态铸造故障
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 内联映射初始化的动态atexit析构函数崩溃
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- Boost Graph Library,修复节点大小
- C++A*算法并不总是在路径中具有目标节点
- 哈希映射使用 nullptr c++ 初始化节点的动态数组
- C++ 如何使用动态计算的新节点实现 A*?
- 如何在没有动态调用的情况下确定子节点的类型
- OPC-UA open62541 sdk 运行服务器后动态添加变量节点
- 将新节点添加到列表中并动态命名
- 具有动态位置的主体节点形状
- 如何将动态数组从从节点发送到主节点
- 动态地为大型节点树分配内存
- 动态连接 QML 中图形的节点 la Pd 或 Max(又名"patching"接口)
- 从n元树中删除动态数组节点时断言错误