Показаны сообщения с ярлыком DirectMap. Показать все сообщения
Показаны сообщения с ярлыком DirectMap. Показать все сообщения

пятница, 26 февраля 2010 г.

DirectMap, оператор склейки

Расширим DirectMap оператором добавления.

template <class Key, class Value>
void DirectMap<Key, Value>::operator<<(const DirectMap<Key, Value> & right)
{
  foreach (QString key, right.keys())
  {
   append(key, right[key]);
  }
}


* This source code was highlighted with Source Code Highlighter.

четверг, 25 февраля 2010 г.

DirectMap - упорядоченный map

Недостаток ассоциативного массива QMap в том, что в нем ключи упорядочиваются. Т.е. если я добавлю в QMap" Key2", "Key1", то на выходе получу, сюрприз, "Key1", "Key2". Ключи будут отсортированы.
Такое поведение честно говоря подзае..ло, а альтернативы в Qt нету.
В качестве альтернативы они предлагают использовать QList<QPair<>>. Крайне громоздкая структура.
Наконец я решил сделать класс с удобством пользования как у QMap и с функционалом как у QList, т.е. без автоматического упорядочивания по ключам.

Начнем пожалуй.