gpt4 book ai didi

c++ - 是否删除 std unordered_map 的元素使用的已删除堆内存

转载 作者:行者123 更新时间:2023-12-02 09:56:30 31 4
gpt4 key购买 nike

我有一个 int 和 string 的无序映射,通过引用将值插入其中。我想从映射中删除一些元素并减少使用的 malloc 内存,但我看不到内存减少。
是否可以使用删除来减少 malloc 内存?删除后重新哈希有帮助吗?

typedef typename std::unordered_set<N> ChangeObjSet;
ChangeObjSet _changeObjSet;

template <class N>
void MdmNameCacheImplMIWithStripEscape<N>::insertChangedStatus(const N &obj)
{
_changeObjSet.insert(obj);
}

typename ChangeObjSet::iterator it = _changeObjSet.begin();
for(;it != _changeObjSet.end();)
{
auto s = it;
it++;
_changeObjSet.erase(s);
}

最佳答案

I am using linux stat stream to get malloc memory



操作系统分配给您的进程的内存不一定与您当前使用的内存相同。为每个被删除的对象释放内存给操作系统将是非常低效的。在进程终止之前,您可能会看到分配给进程的内存没有减少。

关于c++ - 是否删除 std unordered_map 的元素使用的已删除堆内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610241/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com