gpt4 book ai didi

c++ - 如何测量 STL 容器的总内存消耗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:49 26 4
gpt4 key购买 nike

如标题:给定一个 STL 容器类型的对象(例如 std::vector<int>std::set<MyClass> )我想知道它们的内存消耗 --- 即 --- 消耗了多少内存来存储元素,每个元素的辅助数据和容器大小。我假设存储的对象不分配任何额外的内存。

对于 std::vector<int> v我可以添加:

sizeof(std::vector<int>) + v.capacity()*sizeof(int)

因为 vector 不为每个元素存储任何辅助数据。但是我该如何为其他容器做呢?

我可以忍受非常量时间复杂度。

最佳答案

创建您自己的 STL allocator并跟踪放置在其中的内存请求的大小,然后只需添加容器本身的大小。 This article很好地概述了如何创建一个。

关于c++ - 如何测量 STL 容器的总内存消耗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7191093/

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