При рассмотрении моего кода я вижу некоторую «уродливую» структуру я использую, в классе (так называемый «карты») У меня есть вектор, который содержит «данные» класс:управления памятью и станд :: Распределитель
std::vector<PointerToHUGEClass> vector;
Где PointerToHUGEClass точно так же, как описывает название. (хотя указанный объект также принадлежит классу карты и создается с помощью «нового» параметра в конструкторе). Это работает хорошо (на данный момент). Однако я по-прежнему чувствую, что это скорее работа.
только Причина: Я использую «PointerToHUGEClass» вместо «HUGEClass», потому что я хотел убедиться, что объект не объявлен из стека. Это было сделано, прежде чем я понял ассистентов. Теперь я чувствую, что задача распределителя состоит в том, чтобы гарантировать, что память не объявлена из стека.
Мои вопросы:
- Am I, полагая, аллокатора отвечает за управление памятью из пунктов? (И убедитесь, что он объявлен из stack/freestore/heap/whatever)
- Что делает std :: allocator? - Объявляется ли он из стека или из кучи?
- (продолжение с предыдущего вопроса): если я копирую элемент, объявленный в стек, в структуру данных, он все еще объявлен в куче?
Еще раз спасибо, paul23
@ Симон: хмм, этот код должен читать `std :: vector` или `std :: vector ` Спасибо, что заметили. (Хотя это не меняет мои вопросы, вопросы более общие, поскольку это то, о чем я уже давно интересовался) –
paul23
2010-11-23 10:12:55