![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Здраствуйте, подскажите пожалуйста можно ли используя map из stl работать с абстрактными классами?
Пример
Мне надо сделать массив Example'ов. Без повторов. Есть какой нибудь способ заставить работать map? или надо с вектором делать -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
Michrutka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
Попробуй сделать так:
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ты не поверишь, но и с вектором это работать не будет!
![]() |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
или так:
|
|||
|
||||
afiskon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 31.3.2011 Где: Россия, Москва Репутация: 1 Всего: 4 |
Только обязательно воспользуйтесь умными указателями (используйте shared_ptr/unique_ptr, ибо auto_ptr теперь деприкейтед). Не придется вручную вызывать delete и меньше шансов, что память потечет (практически нулевые, если явно не накосячить).
|
|||
|
||||
Burka |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
а работать с этим так же как и с обычными ссылками? создавать через new и удалять через delete надо? ps. как я понял удаляться само будет, но создавать через new правильно?) Это сообщение отредактировал(а) Burka - 1.6.2011, 19:35 -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
для удаления delete не нужен. просто выкидываешь элемент из контейнера, а смарт-поинтер сам все удаляет. Это сообщение отредактировал(а) boostcoder - 1.6.2011, 19:38 |
|||
|
||||
Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Спасибо, попробую
Добавлено через 3 минуты и 37 секунд а какой файл подключать? <boost/shared_ptr.hpp> не находит -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
значит у Вас boost не установлен. Добавлено через 40 секунд или, возможно нужно указать где лежат хидеры boost`а |
|||
|
||||
afiskon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 31.3.2011 Где: Россия, Москва Репутация: 1 Всего: 4 |
Флаг "-std=c++0x" (или "-std=gnu++0x")для GCC или MinGW начиная с версии 4.5. В VS 2010 чуть ли не из коробки, безо всяких галочек (но не факт). Можно через IDE в свойствах проекта поискать соответствующую галочку или прописать вручную где-то в тех же свойствах.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |