Muszę odwzorować zestaw znanych liczb całkowitych na inny zestaw znanych liczb całkowitych, relację 1-do-1, wszystkie wstępnie zdefiniowane i tak dalej. Więc załóżmy, że mam coś takiego (C++, uproszczony, ale dostaniesz pomysł):Szybkie i eleganckie jednokierunkowe mapowanie znanych wartości całkowitych
struct s { int a; int b; };
s theMap[] = { {2, 5}, {79, 12958 } };
Teraz podano liczbę całkowitą wejściowy, powiedzmy 79, to muszę znaleźć odpowiedni wynik z theMap (oczywiście 12958). Jakąkolwiek dobrą i szybką metodę to zrobić, zamiast swojej pętli for-the-mill for? Inne sugestie dotyczące struktury danych również są mile widziane, ale mapa powinna być łatwa do ręcznego zapisu w źródle.
Wartości w obu zestawach mieszczą się w zakresie od 0 do 2^16, a istnieje tylko około 130 par. To, nad czym się również zajmuję, to bardzo prosty sposób statycznej inicjalizacji danych.
Co jeszcze możesz nam powiedzieć o swoich zestawach par całkowitych, w szczególności o pierwszych elementach par? Najlepsza odpowiedź na twoje pytanie zależy od natury twoich danych. –
Edytowane nieco. Zapomniałem jednak wspomnieć, że w zestawach nie ma wyraźnej sekwencji ani wzorca. Możesz myśleć o nich jak o grupie pozornie losowych liczb. – Stockhausen
W odpowiedzi na twoją edycję, najprostszym sposobem statycznego zainicjowania rzeczy jest zrobienie tego, co teraz robisz, skorzystanie z sugestii binarnego wyszukiwania ygrek i pomysłu Potatoswatter na posiadanie rekordów w wymaganej kolejności (chciałbym napisać funkcję testową I mógł biec, by sprawdzić, czy mam trochę racji). –