Zużycie pamięci przez kontenery STL

Pracuję nad aplikacją, w której zamierzam użyć kilku kontenerów STL. Aplikacja podejmie pewne kroki, jeśli zużycie pamięci osiągnie próg. W tym celu muszę wykonać dokładne obliczenia dotyczące ilości pamięci używanej przez kontenery STL.

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

Tak oceniam pamięć:

Dla rozmiaruStringList, zapętl wszystkie elementy wektora i kontynuuj dodawanie rozmiarów łańcucha.

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

Następnie dodaj do tegosizeof(StringList);

Dla rozmiaru odwzorowania zapętl wszystkie klucze kontenera i kontynuuj dodawanie rozmiarów ciągu, a następnie dodaj rozmiary int, które jestmapstring.size()*sizeof(int). Następnie dodaj do tegosizeof(mapstring);

Myślę, że lepszym podejściem byłoby określenie własnej klasy alokatora i śledzenie użycia pamięci wewnątrz niego, ale pisanie jednej może być nietrywialne. Czy ta ocena wygląda dobrze?

questionAnswers(2)

yourAnswerToTheQuestion