Если я вставляю элемент в пустой std::list
я бы ожидал, что будет выделено выделение памяти для хранения моего элемента. Теперь, если я удалю этот элемент и добавлю новый, освободите выделенную память и перераспределите ее при вставке или общие реализации, вы сможете сохранить пул записей, которые будут выпущены (стерты), чтобы их можно было повторно использовать?
std::list<>
реализует структуру данных связанного списка и, следовательно, (концептуально) выделяет новую память каждый раз, когда элемент вставлен. При этом все стандартные классы контейнеров принимают параметр типа, который представляет используемый распределитель. С помощью этого параметра вы можете изменить распределитель на тот, который просто возвращает указатели в предварительно выделенную область памяти. Конечно, если вы уже знаете, сколько памяти вам нужно заранее, непонятно, почему вы должны использовать этот тип структуры данных.