[英]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.