繁体   English   中英

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

[英]What are structs initialized as C++

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

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

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

Node* linkedlist = new Node[100]

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

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

当你使用

Node* linkedlist = new Node[100];

数组的所有元素都是默认初始化的。 通过调用std::string的默认构造函数默认初始化keyvalue 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数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM