簡體   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