dostęp bezpośredni do elementów o nieciągłym indeksie

0

Witam,

Potrzebuję strukturę która na zadaną wartość (parametr/indeks?) zwróci mi wartość całkowitą wcześniej odpowiednio zdefiniowaną.

Np.

2 -> 1
5 -> 4
12 -> 10
15 -> 7

tzn. zadając strukturze parametr 2 ma mi zwrócić (int)1 itd.

Nie chcę tego realizować na tablicach bo potrzebna będzie alokacja dla indeksów pośrednich (0, 1, 3, 4, 6, ...). A wszystkie sekwencyjne rozwiązania jakie mi przychodzą do głowy to jeszcze gorsze rozwiązania gdyż w moim zastosowaniu czas wykonania jest jeszcze ważniejszy od zapotrzebowania na pamięć, a więc potrzebny jest w miarę możliwości dostęp bezpośredni do elementów.

Najlepszym przypadkiem byłoby wykorzystanie ekwiwalentu tablicy dwuwymiarowej, tzn. o sprzężonych indeksach gdyż potrzebuję zwrócenia jednej wartości na podstawie dwóch parametrów.

Tzn.

[2][5] -> 1
[5][8] -> 4

itd.

Gdyby można było zdefiniować typ indeksu tablicy to spróbowałbym zrobić enum ale o ile mi wiadomo to nie ma czegoś takiego.

Dziękuję

0

To sie nazywa tablicą asocjacyjną / tablicą hashującą -hashtable / hashmap.

0

Dzięki - spojrzałem na sugerowane przez Was rozwiązania - ponieważ sprawdzałem posty w porządku odwrotnym więc najpierw nawinęły mi się mapy (być może oba posty dot. tego samego rozwiązania) i wyglądają mi na to właśnie rozwiązanie jakiego szukałem - przetestuję sobie na warunkach mojej aplikacji (tj. dowiem się czy jest opcja podania dwóch parametrów) i dam znać.

0

Witam, no więc zabieram się do tego i wygląda na to że struktura tego typu spełni moje oczekiwania: map<const int, map<const int, int> > _2_to_1;

Dzięki raz jeszcze

1 użytkowników online, w tym zalogowanych: 0, gości: 1