Başlıkta olduğu gibi: bazı STL konteynırlarının bir nesnesi verildiğinde (örn. std::vector<int>
veya std::set<MyClass>
) Bellek tüketimini bilmek istiyorum --- yani öğeleri depolamak için ne kadar hafıza tüketilir? her eleman için veri ve konteyner boyutu. Depolanan nesnelerin herhangi bir ek bellek ayırmadığını varsayalım.Toplam STL konteyner bellek tüketimi nasıl ölçülür?
bir std::vector<int> v
için ekleyebilir: vektörler öğe başına herhangi bir yardımcı veri depolamak yok
sizeof(std::vector<int>) + v.capacity()*sizeof(int)
için. Ama bunu diğer kaplar için nasıl yapabilirim?
Sürekli olmayan zaman karmaşıklığı ile yaşayabilirim.
Muhtemelen kendi kayıt ayırıcınızı sağlamak en iyisidir. Bu, varolan kod için işe yaramaz, ancak kapsayıcıların belleği ne zaman ve nasıl ayırdığını tam olarak izlemenize izin verir. –