Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
qppq
12 / 12 / 5
Регистрация: 31.08.2016
Сообщений: 181
Завершенные тесты: 1
#1

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

31.08.2016, 10:42. Просмотров 1051. Ответов 30

Как поместить в контейнер экземпляры разных классов(типов) ?
http://www.cyberforum.ru/cpp-beginners/thread1967212.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 10:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как поместить в STL-контейнер экземпляры разных классов? (C++):

Как использовать экземпляры классов МFC?
Такая проблема: С помощью MFC AppWizard создал проект, в котором редактируется...

Как считать из файла в контейнер STL (map)
Необходимо считать из файла с поместить в контейнер map, вывести на экран ...

Как засунуть объект класса в контейнер stl? Желательно в вектор
Вобщем, задали лабу: Нужно написать программу хранящую данные о животных....

STL, контейнер set
Помогите, пожалуйста. Задание состоит вот в чем: даны названия городов, и для...

STL контейнер ошибка компиляции
#include <iostream> #include <map> #include <iterator> #include <string> ...

30
_Ivana
3232 / 1860 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
01.09.2016, 11:32 #21
Avazart, возможно. Тогда один из вариантов - свой костыльный any (пока они там в стандарте экспериментировать и утверждать будут), приправленный любым количеством дополнительных полей и методов (для реализации паритетных связей, например )
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,047
Записей в блоге: 17
01.09.2016, 11:36 #22
Все зависит от контекста, имея разный контекст- можно по разному оптимизировать.
0
Fulcrum_013
Заблокирован
01.09.2016, 11:47 #23
Цитата Сообщение от qppq Посмотреть сообщение
то есть нада помнить что-где лежит?
Нет. иерархию и действия с ними проектировать так чтобы не надо было помнить.

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

Добавлено через 40 секунд
Цитата Сообщение от _Ivana Посмотреть сообщение
приправленный любым количеством дополнительных полей и методов
А, ну тогда лучше свой, конечно.
Можно даже поверх бустовского.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,047
Записей в блоге: 17
01.09.2016, 12:00 #25
А бустовский что сильно отличается от STL -ного?
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,181
Записей в блоге: 1
Завершенные тесты: 2
01.09.2016, 12:01 #26
Avazart, Нет, но он хотя бы не в experimental стадии.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,047
Записей в блоге: 17
01.09.2016, 12:03 #27
Цитата Сообщение от GbaLog- Посмотреть сообщение
Avazart, Ну хотя бы тем, что он не в experimental стадии.
Ну так а кто же обкатывать будет если все отказываться будут в пользу буста ?
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,181
Записей в блоге: 1
Завершенные тесты: 2
01.09.2016, 12:17 #28
Avazart, Не знаю, может быть тестеры какие-нибудь есть.
0
qppq
12 / 12 / 5
Регистрация: 31.08.2016
Сообщений: 181
Завершенные тесты: 1
01.09.2016, 13:37  [ТС] #29
Цитата Сообщение от Avazart Посмотреть сообщение
Вместо typename- typeid т.е. целое, а не строка.
typeid это глобальный тип или что это, и если меньше чар, то сколько весит?
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,047
Записей в блоге: 17
01.09.2016, 13:54 #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
0
qppq
12 / 12 / 5
Регистрация: 31.08.2016
Сообщений: 181
Завершенные тесты: 1
02.09.2016, 13:36  [ТС] #31
Цитата Сообщение от Avazart Посмотреть сообщение
В данном случае я имел не глобальный тип и имя поля структуры int typeid.

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

фигню я конечно сморозил
0
02.09.2016, 13:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2016, 13:36
Привет! Вот еще темы с решениями:

C++ STL Создать контейнер (Stack)
1. Создать объект-контейнер и заполнить его данными, тип stack 2. Просмотреть...

STL-контейнер.Переделать реализацию.
Ребята, написал прогу, в которой контейнер типа вектор хранит данные класса...

Какой контейнер STL выбрать?
Во входном потоке (FILE*) дано множество точек. Найти пару точек, расстояние...

Какой STL-контейнер выбрать?
Приветствую! Мне нужно выбрать STL-контейнер (C++11), для хранения элементов...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru