0
我的集合(unordered_map)的最大大小事先已知,所以我想在啓動時預留內存以進行優化。成員函數reserve()
是否達到這個目的?該文件表示,它將保留適當數量的桶以包含N個元素。這是否意味着它會爲N個元素預留空間並重用這些元素,只要我在地圖中沒有N個以上的元素?目的是爲了LRU緩存,因此在添加新元素之前,元素必須被驅逐。我只是想確保在之後erase_element()
後面的內存被重用。unordered_map reserve的行爲
好吧,這是很好的知道。我只是不確定它是否會爲值保留內存。我讀過標準地圖<>容器只保留密鑰的內存,並使用元素的動態新/刪除。謝謝 – danny
據我所知,'std :: map'沒有'reserve'。 – lrineau
看來GCC的unordered_map沒有保留(),所以我不知道該怎麼做。對於地圖,我想到的是我讀到的有關內存池被用來獲取固定大小的地圖的情況,但是由於底層的二叉樹,它仍然使用新/刪除。 – danny