如标题中所示:给定一个STL容器类型的对象(例如std::vector<int>
或std::set<MyClass>
)我想知道它们的内存消耗 - 那就是---多少内存用于存储元素,每个元素的辅助数据和容器大小。我假设存储的对象不分配任何额外的内存。
对于std::vector<int> v
我可以添加:
sizeof(std::vector<int>) + v.capacity()*sizeof(int)
因为向量不会为每个元素存储任何辅助数据。但我怎么能为其他容器做呢?
我可以忍受非恒定的时间复杂性。