Как бы вы определили структуру карты? - PullRequest
1 голос
/ 12 июля 2019

Я недавно реализовал часть работы, которая опиралась на структуру Map of Map, просто потому, что мне нужно было два ключа, чтобы указывать на одно значение.Насколько я понимаю, словари концептуально должны использовать один ключ на значение для отображения всей вещи.

Какой должна быть правильная структура данных для пары ключей, указывающих на одно значение?Какие коллекции вы бы использовали в Java или C ++, например, для достижения этой цели?

1 Ответ

1 голос
/ 14 июля 2019

Давайте возьмем практический пример: значения функции в определенных целочисленных точках на двумерной плоскости. Так что функция f : (int x, int y) -> double value.

  1. Простой способ - собрать все аргументы в struct. В этом примере это означает, что функция отображает точки на значения, а точка представляет собой pair из двух int с или пользовательский struct Point с двумя int полями или получателями, если это необходимо. Таким образом, структура данных map <Point, double> f, где Point может быть pair <int, int> в простом случае.

  2. Можно также сказать, что функция представляет собой отображение int x на семейство функций с одним аргументом, которые отображают int y в double value. Структура данных будет выглядеть следующим образом: map <int, map <int, double> > f.

Выбор зависит от функции, которую вы моделируете, и, возможно, от соображений производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...