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