Потребление памяти контейнерами STL

Я работаю над приложением, в котором планирую использовать пару контейнеров STL. Приложение предпримет определенные шаги, если потребление памяти достигнет порога. Для этого мне нужно выполнить почти точный расчет того, сколько памяти используется контейнерами STL.

vector<string> StringList
map<string, int> mapstring

Вот как я оцениваю память:

Для размераStringList, переберите все элементы вектора и продолжайте добавлять размеры строк.

string size = sizeof(string) + string.capacity()*sizeof(char)

Тогда, наконец, добавьте к этомуsizeof(StringList);

Для размера mapstring, обведите все ключи контейнера и продолжайте добавлять размеры строк, а затем добавьте размеры int, которыеmapstring.size()*sizeof(int), Тогда, наконец, добавьте к этомуsizeof(mapstring);

Я предполагаю, что лучшим подходом будет указание собственного класса-распределителя и отслеживание использования памяти внутри него, но написание такого может быть нетривиальным. Эта оценка выглядит хорошо?

Ответы на вопрос(2)

Ваш ответ на вопрос