初始化为C++的结构是什么

What are structs initialized as C++

本文关键字:结构 是什么 C++ 初始化      更新时间:2023-10-16

我有一个看起来像这样的结构...

struct Node {
     std::string key, value;
     Node* link;
};

如果我这样初始化了一个节点数组......

Node* linkedlist = new Node[100]

我将如何迭代以计算当前存在多少个结构?我目前正在实施一个哈希图,我需要计算有多少个活动存储桶。

初始化为C++的结构是什么

当您使用

Node* linkedlist = new Node[100];

数组的所有元素都是默认初始化的。 keyvalue 默认初始化,方法是调用 std::string 的默认构造函数。 link默认初始化,即未初始化。

我将如何迭代以计算当前存在多少个结构?

你不能在给定指针的情况下这样做。这就是为什么std::vector优先于动态分配的原始数组的原因。您可以通过std::vector获得更多功能。

而不是

Node* linkedlist = new Node[100];

std::vector<Node> linkedlist(100);

更新,以回应OP的评论

当您不被允许使用 std::vector 时,您必须自己跟踪数组中的项目数。

int numItems = 100; // It could be obtained from the user input also.
Node* linkedlist = new Node[numItems];

现在,您可以依靠 numItems 的值来迭代其余代码中的 Node 数组。