Форум программистов, компьютерный форум CyberForum.ru

Как поместить в STL-контейнер экземпляры разных классов? - C++

Восстановить пароль Регистрация
 
 
qppq
 Аватар для qppq
4 / 4 / 1
Регистрация: 31.08.2016
Сообщений: 91
Завершенные тесты: 1
31.08.2016, 10:42     Как поместить в STL-контейнер экземпляры разных классов? #1
Как поместить в контейнер экземпляры разных классов(типов) ?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 10:42     Как поместить в STL-контейнер экземпляры разных классов?
Посмотрите здесь:

C++ STL-контейнер.Переделать реализацию.
C++ Как использовать экземпляры классов МFC?
C++ STL контейнер set, вставка элементов
STL, контейнер set C++
Какой STL-контейнер выбрать? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Ivana
2177 / 1382 / 124
Регистрация: 01.03.2013
Сообщений: 4,123
Записей в блоге: 2
01.09.2016, 11:32     Как поместить в STL-контейнер экземпляры разных классов? #21
Avazart, возможно. Тогда один из вариантов - свой костыльный any (пока они там в стандарте экспериментировать и утверждать будут), приправленный любым количеством дополнительных полей и методов (для реализации паритетных связей, например )
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
01.09.2016, 11:36     Как поместить в STL-контейнер экземпляры разных классов? #22
Все зависит от контекста, имея разный контекст- можно по разному оптимизировать.
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
01.09.2016, 11:47     Как поместить в STL-контейнер экземпляры разных классов? #23
Цитата Сообщение от qppq Посмотреть сообщение
то есть нада помнить что-где лежит?
Нет. иерархию и действия с ними проектировать так чтобы не надо было помнить.

Добавлено через 7 минут
Цитата Сообщение от qppq Посмотреть сообщение
то есть нада помнить что-где лежит?
Нет. иерархию и действия с ними проектировать так чтобы не надо было помнить. К примеру пуля ракета бомба - все это можно назвать одним словом "снаряд". "снаряд" умеет лететь после запуска. Но каждый по своему. Делаешь абстрактный класс снаряд с абстрактным виртуальным методом "лететь" и специализации "пуля" "ракета" и "бомба". Каждая из специализаций хранит свой набор данных нужный для счета следующего шага траектории и имеет свой метод "лететь". Засовываешь все это в один массив "снаряд". И не разбирая кто есть кто вызываешь им всем по порядку метод "лететь" а летит в результате каждый по своему.
Т.е. реально имеет смысл пихать объекты разных типов в один массив только если можно работать с ними не разбирая кто есть кто.
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,508
Записей в блоге: 1
Завершенные тесты: 2
01.09.2016, 11:51     Как поместить в STL-контейнер экземпляры разных классов? #24
Цитата Сообщение от _Ivana Посмотреть сообщение
Тогда один из вариантов - свой костыльный any (пока они там в стандарте экспериментировать и утверждать будут)
Есть же Boost'овский.

Добавлено через 40 секунд
Цитата Сообщение от _Ivana Посмотреть сообщение
приправленный любым количеством дополнительных полей и методов
А, ну тогда лучше свой, конечно.
Можно даже поверх бустовского.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
01.09.2016, 12:00     Как поместить в STL-контейнер экземпляры разных классов? #25
А бустовский что сильно отличается от STL -ного?
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,508
Записей в блоге: 1
Завершенные тесты: 2
01.09.2016, 12:01     Как поместить в STL-контейнер экземпляры разных классов? #26
Avazart, Нет, но он хотя бы не в experimental стадии.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
01.09.2016, 12:03     Как поместить в STL-контейнер экземпляры разных классов? #27
Цитата Сообщение от GbaLog- Посмотреть сообщение
Avazart, Ну хотя бы тем, что он не в experimental стадии.
Ну так а кто же обкатывать будет если все отказываться будут в пользу буста ?
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,508
Записей в блоге: 1
Завершенные тесты: 2
01.09.2016, 12:17     Как поместить в STL-контейнер экземпляры разных классов? #28
Avazart, Не знаю, может быть тестеры какие-нибудь есть.
qppq
 Аватар для qppq
4 / 4 / 1
Регистрация: 31.08.2016
Сообщений: 91
Завершенные тесты: 1
01.09.2016, 13:37  [ТС]     Как поместить в STL-контейнер экземпляры разных классов? #29
Цитата Сообщение от Avazart Посмотреть сообщение
Вместо typename- typeid т.е. целое, а не строка.
typeid это глобальный тип или что это, и если меньше чар, то сколько весит?
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
01.09.2016, 13:54     Как поместить в STL-контейнер экземпляры разных классов? #30
Цитата Сообщение от qppq Посмотреть сообщение
typeid это глобальный тип или что это, и если меньше чар, то сколько весит?
Зависит от реализации. Т.е как реализуешь так и будет.
В данном случае я имел не глобальный тип и имя поля структуры int typeid.

А вообще есть такое:
http://ru.cppreference.com/w/cpp/language/typeid
http://ru.cppreference.com/w/cpp/types/type_info
http://ru.cppreference.com/w/cpp/types/type_index
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2016, 13:36     Как поместить в STL-контейнер экземпляры разных классов?
Еще ссылки по теме:

Какой контейнер STL выбрать? C++
C++ STL контейнер. Не записывает int
C++ STL контейнер ошибка компиляции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
qppq
 Аватар для qppq
4 / 4 / 1
Регистрация: 31.08.2016
Сообщений: 91
Завершенные тесты: 1
02.09.2016, 13:36  [ТС]     Как поместить в STL-контейнер экземпляры разных классов? #31
Цитата Сообщение от Avazart Посмотреть сообщение
В данном случае я имел не глобальный тип и имя поля структуры int typeid.

может так: typedef int typeid;

фигню я конечно сморозил
Yandex
Объявления
02.09.2016, 13:36     Как поместить в STL-контейнер экземпляры разных классов?
Ответ Создать тему

Метки
как
Опции темы

Текущее время: 06:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru