簡體   English   中英

使陣列的存儲效率更高

[英]Making an array more memory-efficient

我是c ++初學者,目前正在開發一個哈希表以適應該語言(線性哈希)。

為此,我制作了一個內部類“ Bucket”。

class Bucket {
public:      
    Bucket* nextBucket;
    size_type currentUsedFields;
    key_type fields[BUCKET_SIZE];
(...)
}

現在我想知道,是否可以提高內存效率,因為key_type數組確實一次分配了所有內存,而不是在真正需要時分配。 有適當的方法來做到這一點嗎?

我認為key_type對象將不再有效,如果我不將其復制到數組中的話。 所以保存指向對象的指針並不是一個選擇,不是嗎?

key_type* add(const key_type& key)

希望您能給我一些提示,說明如何進行更多的內存優化編程。 我也期待進一步的改進。 這是我寫的代碼: https : //pastebin.com/NnucGm35

,要走的路是std::vector 每次必須創建一個字段時,只需將該字段推回向量中就可以了。

對於學習,您可以使用相同的字段創建struct RawBucket ,但是通過malloc分配它,而不是使用realloc 這有點低級的內存管理,但這是很好的經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM