gpt4 book ai didi

c++ - 在 C++ 中,对象创建括号前的 Asterisk 是什么意思?

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

我正在从一个网站上阅读一个用 C++ 实现的哈希表示例,然后看到了这个。

private:
HashEntry **table;
public:
HashMap() {
table = new HashEntry*[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++)
table[i] = NULL;
}

语法我不明白的行是:

table = new HashEntry*[TABLE_SIZE];

括号前有 Asterisk 是什么意思?

最佳答案

new HashEntry*[TABLE_SIZE] 分配并构造一个TABLE_SIZE元素的数组,其中每个元素都是一个HashEntry*,即一个指针到 HashEntry

一个更现代的 C++ 版本是:

private:
std::vector<std::unique_ptr<HashEntry>> table;
public:
HashMap() : table(TABLE_SIZE) {}

这避免了必须定义您自己的析构函数,并且通常更安全。

关于c++ - 在 C++ 中,对象创建括号前的 Asterisk 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337124/

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