crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Есть ли в Qt видоизмененный QMap, тогда не надо будет изобретать велосипед
AD
  опции профиля:
сообщение 18.8.2008, 10:43
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


В Qt есть класс-контейнер QMap<Key, Value>. А есть ли в Qt такой спец. QMap, который имеет не один, а два ключа: т.е. вначале ищет по одному ключу, если ничего не нашел, пытается поискать по второму ключу!

Для чего это нужно: чтобы при вот таком, предположим, QMap<QString, QString, double> и такой строке:
QString key = "1243";
double i = map[key];

Он пытался найти этот ключ в 1-ом ключе и во 2-ом?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Tonal
  опции профиля:
сообщение 18.8.2008, 13:02
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Опять же всё зависит от того, что ты собираешься делать с данными из этого файла.
Если эти данные изменятся не будут, то и твоё решение вполне прокатит.
Если же будут изменятся, то лучше сделать так:
Выбираешь "нормальную форму ключа, например для "km|км" пусть это всегда будет строка km (а можно просто enum использовать, если ключи заранее известны)
В мапе хранишь данные для ключей только в "нормальной" форме.
При приходе ключа, сначала преобразовываешь его в "нормальную форму", а потом достаёшь данные.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 18.8.2008, 13:07
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Tonal @ 18.8.2008, 14:02) *
Опять же всё зависит от того, что ты собираешься делать с данными из этого файла.
Если эти данные изменятся не будут, то и твоё решение вполне прокатит.
Если же будут изменятся, то лучше сделать так:
Выбираешь "нормальную форму ключа, например для "km|км" пусть это всегда будет строка km (а можно просто enum использовать, если ключи заранее известны)
В мапе хранишь данные для ключей только в "нормальной" форме.
При приходе ключа, сначала преобразовываешь его в "нормальную форму", а потом достаёшь данные.

Прости, но я не понял как сделать то, что ты предлагаешь! А в моем решении, которое, впрочем, я уже сделал, данные будут изменяться только статически и не очень сильно. Ну попросту добавят еще какие-нибудь размерности в заданном формате и все.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 10:51