[英]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
的默认构造函数默认初始化key
和value
。 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.