std::vector, map сколько памяти занимают?
От: Баян 75 Россия  
Дата: 01.07.14 08:18
Оценка:
Коллеги, добрый день!

Мне надо приближённо оценить объём памяти, который занимает конкретный std:: контейнер.
Чтобы логировать распределение памяти, потом анализировать логи.
Как это правильно сделать?

Для простого типа TData (не содержащего в себе контейнеры и пр. динамически выделяемую память), я использую:

template<typename TData>
size_t CalculateMemory(const std::vector<TData>& s)
{
return s.capacity() * sizeof(TData);
}

Как вычислять для std::map, unordered_map?

Может, уже есть какие-то функции?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.