Свой контейнер в стиле QMap

4bc41d872a6a1378b487e0a5e64658d5

Как-то достало, что в QMap и QHash элементы читаются по значению.

Надо сразу сказать, что в шаблонах я ранее плохо, что понимал. Но вот возник логичный вопрос

Соответственно поменять значение им в контейнере не получается, то есть поменять можно, но поменяется оно только в полученном локальном элементе.

Речь о методе value (). Тут все понятно получаем элемент однозначно только по значению.

А вот через operator [ ] получаем элемент двумя способами

По ссылке и по константной у значению.

Неприятности начинаются, когда вы начинаете работать с QVariant в качестве значения.

Но иногда хочется получить элемент по константной ссылке.

Размышляем на уровне ещё С++98 и Qt 4.

Контейнеры в Qt это шаблоны, наследования там нет и можно вообще легко замутить свой вариант

© Habrahabr.ru