|
Master of Orion
|
|
Биективный словарь17.01.2013, 21:42. Показов 1197. Ответов 10
Метки нет (Все метки)
Здравствуйте. Возник простой вопрос: существуют ли такие структуры данных встроенные, а если нет. как можно максимально просто (и с достаточны быстродействием, без быдлокода) определить биективный словарь, то есть словарь, для которого
dict[key] == value => dict[value] == key ?
0
|
|
| 17.01.2013, 21:42 | |
|
Ответы с готовыми решениями:
10
Словарь на C#
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
|
|
| 17.01.2013, 22:01 | |
|
Думаю, можно наследовать от Dictionary<T> и в операциях добавления добавить код, автоматически добавляющий вот этот самый биективный элемент с предварительной валидацией, конечно. Соответственно для удаления. Насчет встроенных, думаю не найдется в .NET. А с какой целью такие вообще используются?
0
|
|
|
Master of Orion
|
|
| 17.01.2013, 22:06 [ТС] | |
|
IamRain, ну например, для определения обратных функций и операторов. Насчет наследовать и добавлять пары элементов: это конечно простое решение, но оно, как я уже сказал, "быдлокодерское", потому что количество элементов удваивается, а толку от этого - чуть
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
|
|
| 17.01.2013, 22:10 | |
|
мм, ну да, в принципе мог бы и сам догадаться. А насчет реализации : по-моему, это наиболее простой путь. Во всяком случае, всегда можно попробовать, а там уже смотреть - апгрейдить или изменять.
1
|
|
|
Master of Orion
|
|
| 17.01.2013, 22:13 [ТС] | |
|
IamRain, ну в принципе да, простота реализации >> быстродействия, потому что понятный код оптимизировать можно легко, а вот быстрый код разобрать - затруднительно
![]() Но интересны варианты, кроме: велосипедить свой класс, наследуя от IDictionary, добавлять пары элементов
0
|
|
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
| 17.01.2013, 22:15 | |
|
Psilon, а если в индексаторе какой-нить конвертер ручной написать?
Что б возвращало как раз то что нужно,key<->value
0
|
|
|
Master of Orion
|
||||||
| 17.01.2013, 22:29 [ТС] | ||||||
|
Noob.net, хм, вроде неплохой вариант, но как написать индексатор, у которого параметр - строка, я не представляю
![]() Добавлено через 9 минут Вот череззадничная реализация, интересно, как лучше можно сделать:
0
|
||||||
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|||||||||||
| 17.01.2013, 22:36 | |||||||||||
|
Psilon, Так индексатор от IDictionary принимает объект и его же возвращает.
Я имел ввиду,что б он возвращал противоположное значение от данного. То-есть,получил ключ - вернул значение,значение - вернул ключ.
что-то типа словаря с обратной привязкой ключа к значению. Добавлено через 4 минуты Вот что нашел
0
|
|||||||||||
|
Master of Orion
|
|||||||
| 17.01.2013, 22:42 [ТС] | |||||||
|
В принципе есть такой вариант, но он тоже не очень нравится:
0
|
|||||||
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
| 17.01.2013, 22:47 | |
|
0
|
|
|
Master of Orion
|
|
| 17.01.2013, 22:50 [ТС] | |
|
Noob.net,
Не по теме: не, человек, воспитанный kb2, MoO и Might & Magic не может просто так взять, и перейти на темную сторону Спрошу на англоязычном MSDN, может там чего подскажут. А то в одном случае получается дублирование данных, а в другом много циклов, замедляется доступ (в случае поиска по значению, по ключу получается практически та же скорость, только лишняя проверка).
0
|
|
| 17.01.2013, 22:50 | |
|
Помогаю со студенческими работами здесь
11
Словарь Словарь Словарь Словарь Словарь Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|