gpt4 book ai didi

c++ - 如何找到任何对象使用的内存

转载 作者:IT老高 更新时间:2023-10-28 21:51:36 24 4
gpt4 key购买 nike

class Help
{
public:
Help();
~Help();

typedef std::set<string> Terms;
typedef std::map<string, std::pair<int,Terms> > TermMap;
typedef std::multimap<int, string, greater<int> > TermsMap;

private:

TermMap terms;
TermsMap termsMap;
};

我们如何找到对象termtermsMap 使用的内存(以字节为单位)。我们有图书馆吗?

最佳答案

如果您正在寻找对象的全部内存使用情况,这在 C++ 中通常无法解决 - 虽然我们可以通过 sizeof() 获取实例本身的大小,但对象总是可以根据需要动态分配内存。

如果你能找出容器中单个元素的大小,你可以得到一个下限:

size = sizeof(map<type>) + sum_of_element_sizes;

请记住,尽管容器仍然可以分配额外的内存作为实现细节,对于像 vectorstring 这样的容器,您必须检查 allocated size .

关于c++ - 如何找到任何对象使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160300/

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