C ++ Multimap

C ++ Multimap
Dzisiaj dowiemy się o MultImap i dlaczego używamy multImap. Poznamy implementację pisania i ważne funkcje multimap za pośrednictwem szczegółowych przykładów. Ale przed wskoczeniem na multimap dowiemy się o podstawach mapy w C ++, aby łatwo było się dowiedzieć, jak będzie działać multiMap.

W C ++ mapy to kontenery, które przechowują elementy danych w parach kluczowych. W mapach te pary wartości kluczowej zachowują elementy danych. Oznacza to, że każdy klucz ma swoją wartość elementu, ale klucz musi być unikalny, aby uzyskać szybki dostęp. Domyślnie pary wartości klucza są ułożone w kolejności sortowanej.

Wstęp

W C ++ multimaps to pojemnik, który zachowuje elementy w parach kluczowych w zorganizowanym sposobie, aby mogły działać wydajnie i szybko. Te kluczowe wartości są używane do układania elementów i jednoznacznie zidentyfikowane, aby zawartość związana z tym kluczem była przechowywana w wartości zmapowanych. Jedyną istotną różnicą między multimapem a mapą jest możliwość powtarzających się klawiszy, które nie są wyjątkowe, i używa „”<” operator to compare the keys.

Składnia

W MultImap STL napiszemy słowo kluczowe „szablon”, aby przekazać danych jako parametr, abyśmy nie musieli pisać kodu dla każdego danych, a następnie pisać „” większy niż operator, aby zamknąć klasę multImap.

Parametry

klucz: służy do informowania typu klucza do przechowywania klucza w multimapie.

typ: służy do poinformowania danych o wartości mapowanej w multimapie.

porównywać: jest opcjonalnym parametrem i pozwala porównać dwie wartości elementów jako klawisze sortowania, aby dowiedzieć się, w jaki sposób powinny być ułożone w multimap. Jako domyślnie używane jest binarny predykat.

Alloc: służy do alokacji wartości w multimap.

Przykład

Oto prosty przykład multimap. Zacznijmy od opisania wdrożenia przykładu, a także zrozumienie, co zrobiliśmy w tym przykładzie. Ale wcześniej potrzebujemy kompilatora C ++, w którym piszemy i wykonujemy przykładowy kod. Więc otwórz kompilator C ++.

W tym podstawowe biblioteki

W każdym programie C ++ musimy uwzględnić ważne i podstawowe biblioteki związane z naszym programem, abyśmy nie musieli pisać kodu określonej funkcji C++. Korzystając z pakietów, nasz kod będzie precyzyjny i łatwy do zrozumienia, a także będzie skutecznie kompilować. Piszemy znak „#” dla każdego pakietu, który skieruje kompilatora do załadowania pliku nagłówka. Następnie napiszemy słowo kluczowe „dołącz”, aby kompilator zrozumie, że dołączamy dowolny pakiet w C++. Następnie otwieramy operatora „”.

W tym przykładzie użyliśmy trzech bibliotek; „Iostream” wprowadza dane od użytkownika i wyświetla dane użytkownikowi. Drugi to „ciąg”, więc jeśli używamy dowolnej wartości ciągu w całym programie, musimy dołączyć pakiet ciągów, a trzecia to „mapa”, ponieważ używamy technik mapowania w naszym programie.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;

Deklarowanie i inicjowanie par kluczowych

Następnie piszemy funkcję main () w programie, abyśmy mogli napisać rzeczywisty wiersz kodu, który chcemy wdrożyć. Najpierw zadeklarujemy multimap krotek o nazwie „MULMAP” pary wartości kluczowej „INT” i „String” i zainicjuje niektóre dane. W przypadku ciągów piszemy dane w podwójnych cudzysłowie. Następnie sprawdzamy rozmiar krotki „mulmap” za pomocą predefiniowanej funkcji rozmiaru () połączonej z „MULMAP”, a następnie wyświetla się rozmiar za pomocą predefiniowanej metody COUT (). Aby wyświetlać elementy krotek jeden po drugim, zadzwoniliśmy „dla pętli”.

int main ()

Multimap MULMAP =
1, „Islamabad”,
2, „Lahore”,
3, „Multan”,
4, „Karaczi”
;
Cout << "The size of multimap is: " << mulmap.size()
<Cout << "Elements in multimap are: " << endl;
Cout<<"\tKEY\t\tELEMENT\n";
dla (auto iTr: mulMap)
Cout << "\t" << itr.first <<"\t\t"<< itr.second << endl;

Oto dane wyjściowe poprzedniej części kodu. Jak widzisz, teraz mamy wielopasmowy rozmiar krotek i elementy par-wartości.

Wstawienie nowych danych za pomocą funkcji Insert ()

Po ogłoszeniu multimap, chcemy zaimplementować jedną z funkcji multimap, która jest funkcją insert (). Ponieważ już włożyliśmy niektóre dane do multimap, chcemy wstawić kilka nowych danych. W tym celu napiszemy wielowarstwową nazwę „mulmap”, a następnie połączymy z nią funkcję insert (). W nawiasach MULMAP napisz słowo kluczowe „Make Par”, ponieważ przekazujemy dane w formie pary w multiMap, a następnie napisz nową parę, w której chcemy wstawić dane w istniejącym kroku „Mulmap”.

A następnie użyliśmy „dla pętli” do wyświetlania wartości w skorupce jeden po drugim w sortowanej kolejności. Po wydrukowaniu par kluczowych, chcemy ponownie sprawdzić rozmiar zaktualizowanego krotki „mulmap”, więc ponownie użyliśmy funkcji size () i przekazaliśmy funkcję size () w metodzie Cout (), abyśmy mogli Wyświetl rozmiar „MULMAP” dla użytkownika.

Cout << "\nInserting New Elements in Multimap: " << endl;
Cout<<"\tKEY\t\tELEMENT\n";
Mulmap.insert (make_pair (0, „rawalpindi”));
Mulmap.insert (make_pair (5, „hyderabad”));
dla (auto iTr: mulMap)
Cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

Cout <<"Elements in multimap after updating: " << mulmap.size() << endl;

Spójrzmy na dane wyjściowe poprzedniego fragmentu danych na MultImap, w którym wstawiliśmy nowe dane. Jak widać, pary kluczowe są wyświetlane w zorganizowany sposób. A po zaktualizowaniu par kluczowych, mamy rozmiar multimap jako 6.

Usuwanie danych z multimap za pomocą funkcji Erase ()

Do usuwania elementów danych z krotki Mulmap używamy funkcji Erase () i przekazujemy funkcję w metodzie Cout (), abyśmy mogli wyświetlić krotek „MULMAP” po usunięciu elementów z krotki. Z drugiej strony sprawdzamy rozmiar krotki „mulmap” za pomocą funkcji size ().

Cout<<"\nRemoving elements from multimap: \n";
Cout<<"\tKEY\t\tELEMENT\n";
Mulmap.usuń (Mulmap.początek (), mulmap.znaleźć (4));
dla (auto iTr: mulMap)
Cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

Cout <<"Elements in multimap after removing: " << mulmap.size() << endl;

Oto wyjście ilustrowanej części, którą zaimplementowaliśmy powyżej. Jak pokazano poniżej, rozmiar krotki „mulmap” wynosi 2:

Sprawdź górną granicę istniejącego krotki Mulmap

Aby sprawdzić pierwszy element zaktualizowanego krotki „MultImap”, użyjemy funkcji Upper_Bound () i przekazamy wartość kluczową do funkcji.

Cout << “\nElement on the Upper bound of multimap is: “ << endl;
Cout<<”\tKEY\t\tELEMENT\n”;
Cout << “\t” << mulmap.upper_bound(0)->Pierwszy << “\t\t” << mulmap.upper_bound(0)->drugi << endl;

Jak widzieliście, przekazaliśmy wartość 0 do funkcji Upper_Bound (). Mamy jednak Get the Upper Ginde of Key Element 4, ponieważ teraz krotek „mulmap” zawiera tylko dwa kluczowe elementy, a górny jest wyświetlany poniżej:

Sprawdź dolną granicę istniejącego krotki Mulmap

Teraz sprawdźmy ostatni element krotki „MULMAP” za pomocą funkcji Lower_Bound () MultImap i drukując ją metodą Cout ().

Cout << "\nElement on the lower bound of multimap is: " << endl;
Cout<<"\tKEY\t\tELEMENT\n";
Cout << "\t" << mulmap.lower_bound(5)->Pierwszy << "\t\t" << mulmap.lower_bound(5)->drugi << endl;

Oto wyjście dolnej granicy krotki „mulmap”:

Ostatecznie powrócimy 0 do funkcji Main () i zamkniemy kręcone aparaty ortodontyczne:

Wniosek

W tym artykule nauczyliśmy się multimap, wdrażając proste przykłady ze szczegółowymi wyjaśnieniami. Omówiliśmy styl pisania multimap. Nauczyliśmy się również niektórych ważnych funkcji multimap w C ++ ze szczegółowym wyjaśnieniem każdego wiersza kodu.