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;
};
我们如何找到对象term
和termsMap
使用的内存(以字节为单位)。我们有图书馆吗?
最佳答案
如果您正在寻找对象的全部内存使用情况,这在 C++ 中通常无法解决 - 虽然我们可以通过 sizeof()
获取实例本身的大小,但对象总是可以根据需要动态分配内存。
如果你能找出容器中单个元素的大小,你可以得到一个下限:
size = sizeof(map<type>) + sum_of_element_sizes;
请记住,尽管容器仍然可以分配额外的内存作为实现细节,对于像 vector
和 string
这样的容器,您必须检查 allocated size .
关于c++ - 如何找到任何对象使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160300/