-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
||||||
1 | ||||||
Статический контейнер для разных типов07.10.2012, 21:27. Показов 6435. Ответов 18
Метки нет (Все метки)
Доброго здоровица.
Как объявить контейнер для хранении различных типов? Правилен ли такой метод?
0
|
07.10.2012, 21:27 | |
Ответы с готовыми решениями:
18
Нужен динамический контейнер, который будет соединять разные переменные, разных типов в блоки Определить наибольшее из 3 чисел для данных разных типов Как сделать один шаблон для разных типов Создать универсальный вектор для разных типов класса |
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
07.10.2012, 21:31 | 2 |
Эм... Из фраз "контейнер", "статический" и "разные типы" выбираете любые две.
Или "статический" и "разные типы" — кортеж. Или "контейнер" и "статический" — но одного типа. Или "контейнер" и "разные типы" — но с динамическими проверками типов.
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
|
07.10.2012, 21:50 [ТС] | 3 |
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
07.10.2012, 21:53 | 4 |
Тогда std::tuple (надо С++11) или boost::tuple (надо Boost).
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
|
07.10.2012, 21:58 [ТС] | 5 |
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
07.10.2012, 22:03 | 6 |
Тогда делаете контейнер из каких-нибудь boost::any или аналогов.
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
||||||
07.10.2012, 22:31 [ТС] | 7 | |||||
~OhMyGodSoLong~, как затайподефайнить кортедж?
error C2065: T: необъявленный идентификатор
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|||||||||||
07.10.2012, 22:33 | 8 | ||||||||||
vechestva, C++11?
а иначе typedef'ить темплейтные типы можно только внутри структур/классов/функций
должно быть
1
|
2836 / 1645 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||||||
07.10.2012, 22:55 | 9 | |||||
Кортеж? При чём тут тогда template и map?
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
|
07.10.2012, 23:12 [ТС] | 10 |
млин!
Я хочу создать map с разными типами. И после тайподефайнить его. Вот вам и вопрос. Без нового стандарта.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
07.10.2012, 23:14 | 11 |
vechestva, c разными типами, но одним ключом?
зачем тайпдефить? я не понимать зачем тут мап
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
07.10.2012, 23:23 | 12 |
Тогда, видимо, никак. Вряд ли у вас есть boost.
Даже если вы наваяете шаблон вида std::map<std::string, T>, то тип Т - это все равно один тип. И в одну мапу объекты разных типов запихнуть не получится. А насколько много разных типов надо туда запихать? может есть смысл использовать union или struct?
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
|||||||||||
07.10.2012, 23:30 [ТС] | 13 | ||||||||||
с одним ключём для каждого типа.
Он будет статичным, или как крестовики говорят "синглтон". SomeObject someObject; ...
а затайподефайнить нужно, чтобы можно было удобнее работать с итераторами. Добавлено через 2 минуты я в первом посту спросил, правильный ли метод реализаций:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
07.10.2012, 23:33 | 14 |
это какойто ад
насколько вы представляете что делаете? нет, у вас будут объекты одного типа
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
||||||
07.10.2012, 23:37 [ТС] | 15 | |||||
за то пользоваться удобно.
Вот только сам
Добавлено через 1 минуту как это так? Объекты в MyContainer разные
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
07.10.2012, 23:39 | 16 |
Не по теме: Что-то оно пахнет говнокодом... Вы хотите сделать статический мэп (точнее по мэпу на каждый тип), в котором можно искать по имени объект какого-то типа... Ууу... А тайпдефить вряд ли получится. Шаблоны раскрываются при компиляции, так что какие-нибудь map<int> и map<double> — это совершенно разные типы. Считайте их типами с именами map__int и map__double. Соответственно, они не могут быть под одним тайпдефом. Максимум вы можете сделать тот костыль, что в восьмом посте. Тогда можно будет писать вместо std::map<std::string, T>::iteratorтакое: MyMap<T>::iterator
0
|
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
|
|
07.10.2012, 23:44 [ТС] | 17 |
В итоге получается ошибка проектирования?
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
07.10.2012, 23:49 | 18 |
Ну никто ж не знает, какие цели вы преследовали. Может вам реально надо было обращаться к объектам по строковым именам по каким-то высшим причинам, тогда это... технически нормально и логично. Но вот реально ли надо по строкам отыскивать объекты? Почему не указатели? Это пользователь что ли будет вводить строки и ему надо выдавать объекты различных типов по этим строкам? (Кстати, как вы тип будете узнавать по строке в таком случаете?)
1
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
08.10.2012, 00:01 | 19 |
0
|
08.10.2012, 00:01 | |
08.10.2012, 00:01 | |
Помогаю со студенческими работами здесь
19
Сделать один метод для 3 разных типов массивов Аргумент разных типов для одной функции (без перегрузки) Создание шаблонной функции для работы с массивами разных типов данных Используя механизм перегрузки функции, вычислить для разных типов параметров Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|