У меня плотная матрица, где индексы соответствуют генам. Хотя идентификаторы генов часто являются целыми числами, они не являются смежными целыми числами. Вместо этого они тоже могут быть строками.
Полагаю, я мог бы использовать какую-то разреженную матрицу усиления с целочисленными ключами, и не было бы значения, если они смежные. Или это все еще занимало бы много места, особенно если у некоторых генов есть идентификаторы, которые состоят из девяти цифр?
Кроме того, я обеспокоен тем, что разреженное хранилище не подходит, так как это общая матрица (в каждой клетке будет расстояние, если существует ген).
Мне вряд ли понадобится выполнять какие-либо матричные операции (например, матричное умножение). Мне нужно будет вытащить векторы из матрицы (срезы).
Кажется, что лучший тип матрицы будет иметь ключ Boost unordered_map (карта хеша) или, возможно, даже просто карта STL.
Я смотрю на это неправильно? Мне действительно нужно свернуть свое? Я думал, что видел такой класс где-то раньше.
Спасибо!