std :: unordered_map очень высокое использование памяти

Вчера я пытался использовать std :: unordered_map , и этот код сбил меня с толку, сколько памяти он использовал.

typedef list<string> entityId_list;
struct tile_content {
   char cost;
   entityId_list entities;
};
unordered_map<int, tile_content> hash_map;

for (size_t i = 0; i < 19200; i++) {
   tile_content t;
   t.cost = 1;
   map[i] = t;
}

Вся эта часть кода была скомпилирована в MS VS2010 в режиме отладки. В моем диспетчере задач я видел около 1200 КБ "чистого" процесса, но после заполнения hash_map он использует 8124 КБ памяти. Это нормальное поведение unordered_map ? Почему используется так много памяти?

7
задан 眠りネロク 21 August 2018 в 06:15
поделиться