Предположим, что у меня есть базовый класс Animal
с виртуальными функциями и некоторыми производными классами (Cat
, Dog
и т.д.). Реальные производные классы содержат 4-8 байтов данных. Я хочу сохранить std::list<Animal>
, который фактически содержит элементы, которые являются производными объектами. Я хочу избежать создания множества небольших объектов в куче, используя новые.
Есть ли какой-либо шаблон дизайна, который можно использовать для достижения этого?
EDIT: Мои идеи для реализации этого
- create
std::deque<Cat>
,std::deque<Dog>
,...; storestd::list<Animal*>
, который содержит указатели отdeques
; Я используюstd::deque
, потому что полагаю, что он имеет хорошее управление памятью с кусками объектов;