У меня есть требование о внедрении C++ класса для поддержки следующихРеализовать C++, который поддерживает 2 уровень выглядит с ключами любого типа
данные:
ключа - строка
подключи - строка/двойная
Значение - строка/двойной
ключ & подключ вместе идентифицирует строку однозначно.
Eg:
[ "key", "subkey", "value" ]
[ "cse", "a", 100 ]
[ "cse", "b", 120 ]
[ "cse", 100, 10 ]
Операция:
1) Учитывая ключевым & возвращаемого значения
2) Учитывая ключ возврата массива [ "subkey", "value" ]
Проблемы Я облицовка - это то, что подраздел и значение могут быть как двойными, так и строковыми. Один из способов решения этой проблемы - наличие класса-оболочки, который имеет возможность хранить как двойные, так и строковые типы.
Карта первого уровня будет содержать строку в качестве ключа, а значение будет представлять собой карту.
Карта второго уровня будет иметь ключ, так как новый класс-оболочка и значение также являются новым классом-оболочкой.
Этот подход подходит? или есть ли лучшие способы сделать это?
Довольно пустая трата пространства, но, вероятно, она будет работать в большинстве ситуаций. Рассмотрите союзы или абстрагирование более высокого уровня. – pmr
@pmr: Да, я не мог потрудиться, глядя на синтаксис синтаксиса C++ 11 non-POD. –