Wstęp
Wyszukiwanie określonej informacji w jakimś zbiorze jest niezwykle często wykonywaną czynnością w programowaniu. Może ono przybierać zarówno postać jawnych wywołań metod czy funkcji wyszukujących np.:
int index = szukaj(tablica, element); vector::iterator it = find(kontener.begin(), kontener.end(), 10);
lub wywołań niejawnych, w których uruchamiamy mechanizm wykorzystujący wyszukiwanie np.:
int ileZmienionych = zamien(tablica, element, nowyElement); urodziny["Rafał Żurawski"] = "01-10-1976";
Zastosowań jest wiele, ale jedno z nich wyjątkowo często używa mechanizmu wyszukiwania. Mowa tu o mapach.
Czym są mapy?
Mapa to taka specjalna tablica, fachowo określana jako tablica asocjacyjna. Hehe, a co to znów za dziwoląg? Myślę, że pojęcie tablicy nie jest Ci obce. Ku woli szybkiego przypomnienia powiem, że tablica to nic innego jak zbiór elementów. Każdy element ma ściśle określoną pozycję często nazywaną indeksem. Dzięki indeksowi mamy możliwość pobrania dowolnego, istniejącego w zbiorze elementu. Nie rzadkim udogodnieniem zbiorów jest możliwość natychmiastowego podawania jego liczebności bez konieczności iterowania po nim. Takim przykładem mogą być łańcuchy (zbiory, których elementami są znaki) w języku Pascal. Łańcuchy w językach C i C++ (NTS – ang. null terminated string) niestety wymagają przejrzenia wszystkich znaków aż do wystąpienia znaku końca łańcucha ‘


Pobierz artykuł jako plik PDF