Funkcje Multiset C ++

Funkcje Multiset C ++
Multiset komponent standardowej biblioteki C ++ jest wykorzystywany do przechowywania i dostępu z zestawu, w którym wartości zaangażowanych komponentów są stosowane jako kluczowe wartości do dynamicznego organizowania danych, nawet jeśli nie muszą być unikalne. Nie jest łatwo ręcznie modyfikować wartość kluczową elementu w multiset. Raczej komponenty, które mają nowe wartości, powinny zostać dodane, a stare wartości powinny zostać wyeliminowane z komponentów. Multisets to pojemniki, które są identyczne z zestawem pojemników. Trzymają wartości w postaci klawiszy w określonej sekwencji, podobnie jak zestaw. Elementy multiset są określone jako klucze, podobnie jak zestawy.

Głównym rozróżnieniem między zestawem a multisetem jest to, że zestaw ma osobne klucze, ale multiset pozwala na klucze o podobnej wartości. Drzewa do wyszukiwania binarnego są zaimplementowane przy użyciu klawiszy Multiset. Po uwzględnieniu elementów w multiset, elementów tych nie można zmodyfikować; Można je tylko dodać lub usunąć. Plik nagłówka dla #Include zawiera multiset. Iteratory mogą być używane do pobrania komponentów multiset.

Metody stosowane na multisetach

Oto następujące metody Multiset C ++:

  • Funkcja Begin (): Daje iterator początkowego elementu zestawu.
  • End () funkcja: zapewnia iterator do elementu po końcowym elemencie zestawu.
  • Funkcja size (): dostarcza informacji o wielkości multiset.
  • Insert () funkcja: Dodaje element do multiset.
  • Erase () funkcja: usuwa komponenty multiset.
  • FINK () Funkcja: Jeśli element jest położony, ta funkcja daje iteratorowi odnoszące się do niej; W przeciwnym razie zapewnia iterator odnoszący się do końca Multiset.
  • Clear () funkcja: usuwa wszystkie elementy multiset.
  • Funkcja pusty (): informuje nas o statusie multiset jako pustym lub nie.

Omówmy użycie tych funkcji.

Przykład 1:

Wbudowana metoda C ++ STL jest określona w pliku nagłówka. Iterator zwrócony tą metodą wskazuje na pierwszy element w kontenerze multiset, z którym jest powiązany. Funkcja początkowa () odnosi się do komponentu, który jest pierwszym elementem kontenera opartego na warunku sortowania, ponieważ kontenery multiset zachowują elementy w kolejności rosnącej.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
int a [] = 22, 34, 51, 83, 68, 50, 96;
Multisetcheck (A, A + 7);
Cout<<"The elements of the list are: ";
dla (auto x = sprawdź.zaczynać(); X != Sprawdź.koniec(); x ++)
Cout<< *x << " ";
Cout<<"\nFirst element of the list: "<<*(check.begin());
powrót 0;

Przede wszystkim wprowadzamy plik nagłówka . Ten plik nagłówka jest powiązany z wykorzystaniem funkcji multiset w programach C ++. Następnie używamy standardowej przestrzeni nazw jako STD. Teraz wzywamy metodę main (). Tutaj inicjujemy tablicę. Ta tablica zawiera 7 różnych wartości. Te elementy tablicy są zapisywane w zmiennej „A”. Następnie wykorzystujemy funkcję multiset. Tutaj przekazujemy tablicę jako parametr funkcji. Teraz instrukcja „cout” służy do pokazania wszystkich elementów wymaganej listy. Stosujemy pętlę „for”. Ta pętla iteruje każdą wartość listy, dopóki warunek nie zostanie spełniony.

Zastosujemy metody początkowe () i end () w pętli „for”. Funkcja początkowa () uruchamia listę do wydrukowania. Podczas gdy funkcja end () kończy listę. Następnie zwiększamy wartość zmiennej pętli. Ponownie używamy instrukcji „Cout”, aby wydrukować pierwszą wartość określonej listy. Używamy metody początkowej () do uzyskania pierwszej wartości listy,. W końcu wpisujemy polecenie „return 0”.

Przykład 2:

Funkcja END () jest wbudowaną częścią C ++ STL i znajduje się w pliku nagłówka. Ta funkcja oddaje iterator, który wskazuje na kontener multiset przed końcem. Element, który pojawia się po ostatnim elemencie w kontenerze multiset, jest znany jako komponent przed końcem. Innymi słowy, nie wskazuje na żaden konkretny składnik kontenera multiset. Ta metoda nie przyjmuje żadnych argumentów.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
int v [] = 24, 64, 19, 35, 82, 59, 46;
Multisetcheck (v, v + 7);
Cout<<"The items of the list are: ";
dla (auto j = sprawdź.zaczynać(); J != Sprawdź.koniec(); J ++)
Cout<< *j << " ";
powrót 0;

Po pierwsze, plik nagłówka „bity/stdc++.h ”jest dodawane. Ta biblioteka jest powiązana z sposobem stosowania funkcji multiset w programach C ++. Standardowa przestrzeń nazw jest teraz uwzględniona i oznaczona jako std. Teraz, gdy wywołujemy metodę main (), wykonujemy skrypty w ciele funkcji. Tutaj tablica jest inicjowana. W tej tablicy jest 7 różnych elementów. Przedmioty tych tablicy są przechowywane w zmiennej „v.„Następnie wywoływana jest funkcja multiset. Rzeczywista liczba elementów w określonej tablicy jest również podana.

Teraz cała wymagana lista jest wyświetlana przy użyciu instrukcji „Cout”. Używamy pętli „for”. Ta pętla powtarza każdą wartość na liście do momentu spełnienia wymogu. Nazywamy metody początkowe () i end () w pętli „for”. Lista do wyświetlenia jest inicjowana metodą początkowa () i jest wypełniona za pomocą funkcji end (). Wartość „j” jest zwiększona w ostatnim segmencie pętli „for”. Ponownie stosujemy oświadczenie „cout”. Instrukcja „return 0” jest wykonywana na końcu.

Przykład 3:

Plik nagłówka „bity/stdc++.H ”zawiera metodę wbudowanej liczby () standardowej biblioteki szablonów C ++. Za pomocą tej funkcji ustalamy, ile elementów ma określony klucz. Tę funkcję można zastosować do policzenia liczby razy. Ten sam element jest używany w multiset, ponieważ multiset może zawierać wiele wartości dla określonego członka. W całym pojemniku hrabia () szuka klucza, a następnie zwraca wyniki. Metoda zwraca 0, jeśli nie ma żadnych elementów, których szukamy w zestawie. Powiązany kontener multiset musi być zbadany pod kątem jednej wartości metody jako argumentu, który przyjmuje.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
int u [] = 78, 23, 56, 78, 91, 16, 78, 62;
multisetcheck (u, u + 8);
Cout<<"The values of the list are: ";
dla (auto l = sprawdź.zaczynać(); l != Sprawdź.koniec(); L ++)
Cout<< *l << " ";
Cout<< "\n78 is present: "<Cout<< "\n56 is present: "<powrót 0;

Na początku uwzględniamy bibliotekę. W następnym kroku korzystamy z domyślnej przestrzeni nazw. Metoda main () jest teraz wywoływana. Tutaj tablica jest inicjowana. W tej tablicy określono osiem różnych liczb całkowitych. Ci członkowie tablicy są przechowywani w zmiennej o nazwie „U.„Następnie używamy metody multiset. Tutaj podajemy tablicę jako parametr funkcji multiset. Wskazujemy również ogólną liczbę elementów tej tablicy. Wartości wymaganej listy są następnie wyświetlane za pomocą instrukcji „Cout”. Pętla „for” jest używana tutaj. Do momentu spełnienia warunku, ta pętla iteruje każdą pozycję w tablicy.

Używamy funkcji początku () i end () z pętlą „for”. Lista zaczyna drukować, gdy zastosowana jest metoda początku (). Ale lista zakończyła się metodą END (). Wartość „i” jest zwiększona w pętli „for”. Jeszcze raz zastosowano polecenie „Cout”, aby wydrukować prawdopodobieństwo, z jaką liczba 78 pojawia się na zdefiniowanej liście. Metoda „liczba ()” jest wywoływana, aby znaleźć prawdopodobieństwo. Chcemy również wiedzieć, jak często istnieje wartość „56” na liście. Tak więc ponownie używamy funkcji Count (). Aby wyświetlić odpowiedź, korzystamy z instrukcji „Cout”. Instrukcja „return 0” jest wpisana na zakończenie kodu.

Przykład 4:

Wartość podana jako punkt parametru jest usuwany metodą multiset, Erase (). Wykonaj następujący program, aby zobaczyć, jak wykonuje metoda Erase ():

#włączać
za pomocą przestrzeni nazw Std;
int main ()

Multisetset;
Multiset :: Iterator ITR;
dla (int k = 1; k < 20; k++)
ustawić.wstaw (k);

Cout<< "Original set: ";
for (itr = set.zaczynać();
ITR != zestaw.koniec();
++ITR)
Cout
<< " << *itr;
Cout<< '\n';
ITR = set.zaczynać();
ITR ++;
ustawić.usunąć (ITR);
Cout<< "Updated set: ";
for (itr = set.zaczynać();
ITR != zestaw.koniec();
++ITR)
Cout<< " << *itr;
Cout<< '\n';
powrót 0;

Tutaj włączamy bibliotekę . Ten plik nagłówka dotyczy użycia funkcji multiset. Następnie używamy standardowej przestrzeni nazw. Wraz z tym nazywamy funkcją Main (). Korzystamy z funkcji multiset dwa razy. W przypadku pierwszej metody multiset zestaw jest przekazywany jako atrybut. A dla drugiej metody multiset iterator „ITR” jest dostarczany jako argument.

Ponadto stosujemy pętlę „for”. Najpierw zainicjujemy zmienną pętli. Następnie pętla iteruje wartość poniżej 20. Następnie wykonaj przyrost w zmiennej pętli. Używamy instrukcji „Cout”, aby pokazać rzeczywisty zestaw elementów. Użyjmy ponownie pętli „for”. Tutaj nazywamy metodę początkowa (). Wraz z tym wywołujemy funkcję END (). Zastosujemy te funkcje do wartości iteratora „ITR”. Następnie wartość iteratora jest zwiększana o 1. Chcemy usunąć drugą wartość z wymaganego zestawu, więc użyliśmy metody Erase ().

Następnie stosuje się instrukcję „Cout” do wydrukowania elementów zestawu po usunięciu drugiej wartości. Aby wyświetlić elementy zestawu w sekwencji, ponownie używamy pętli „for”. W pętli „for” funkcje początkowe () i end () są stosowane do uruchamiania i zakończenia zestawu. Ostatecznie używamy polecenia „Return 0”.

Przykład 5:

W tej ilustracji wstawiamy wartości w zestawie za pomocą funkcji multiset insert (). Następnie usuwamy wszystkie elementy z zestawu za pomocą metody multiset clear ().

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
Multiset A1;
Multiset A2;
for (int j = 0; j < 15; j++)
A1.wstaw (J + 1);

for (int j = 0; j < 15; j++)
A1.wstaw (J + 1);

for (int j = 0; j < 15; j++)
A2.wstaw ((j + 1) * 10);

for (int j = 0; j < 15; j++)
A2.wstaw ((j + 1) * 10);

set :: iteratoriter;
dla (iter = a1.zaczynać(); iter != A1.koniec(); ITER ++)
Cout<< * iter<< " ";
Cout<< '\n';
dla (iter = a2.zaczynać(); iter != A2.koniec(); ITER ++)
Cout<< * iter<< " ";
Cout<< '\n';

Uwzględniamy dwa pliki nagłówka i na początku kodu. Oprócz tego wykorzystujemy standardową przestrzeń nazw. Następnie nazywamy funkcję main (). Zacznijmy kodować w treści funkcji main (). Najpierw dwukrotnie nazywamy funkcję multiset. Zainicjujemy dwie różne zmienne o nazwie „A1” i „A2”. Następnie stosujemy pętlę „for”.

Po zainicjowaniu zmiennej pętli, zastosowaniu warunku na zmienną pętli i zwiększenie wartości zmiennej pętli, używamy metody insert () do dodania elementów. Ponadto wywołujemy funkcję zestawu. Tutaj deklarujemy zmienną „iter” dla iteratora. Zwiększamy wartość „ITER”. Pętla „dla” jest używana odpowiednio dla zarówno zmiennych „A1”, jak i „A2”.

A1.usunąć (6);
A2.usunąć (a2.początek (), a2.znaleźć (12));
Cout<< "After removing the element from the required set, now the size will be: " << a1.size() << '\n';
int v = 9;
if (a1.Znajdź (v) != A1.koniec())
Cout<< "The defined set has: " << v << " values" <w przeciwnym razie
Cout<< "The defined set does not have: " << v <Cout<< "The new values of the set: ";
dla (iter = a1.zaczynać(); iter != A1.koniec(); ITER ++)
Cout<< * iter<< " ";
Cout<< '\n';
A1.jasne();
if (a1.pusty () == true)
Cout<< "The set has no element";

powrót 0;

Ponadto używamy metody Erase (). Następnie używamy metody Find (), aby uzyskać element „12” z zestawu. Używamy instrukcji „Cout”, aby pokazać zestaw po usunięciu elementu „6”. Następnie zainicjujemy zmienną „V”. Nazywamy funkcje FINK () i END () w warunkach „jeśli”, które są powiązane z pierwszym zestawem. Stosujemy warunek „jeśli” na elemencie podanym do funkcji FINK (). Jeśli ten warunek jest spełniony, „cout” drukuje elementy zestawu. W przeciwnym razie instrukcja „Cout” drukuje wiadomość, która pokazuje, że wymagana wartość nie jest obecna w zestawie.

Po raz kolejny stosujemy funkcje „for”, początkowe () i end (). Ostatecznie stosujemy metodę Clear () i warunek „jeśli”. Definiujemy stan w ciele „jeśli”. Jeśli zestaw jest pusty, instrukcja „Cout” pokazuje tekst „Zestaw nie ma elementu”. Po tym wszystkim wprowadzane jest polecenie „Return0”.

Wniosek

Najpierw rozmawialiśmy o tym, czym jest multiset C ++. Następnie zaobserwowaliśmy kilka funkcji C ++ zastosowanych do multisetów. W tym artykule uruchamiamy różne kody zawierające różne metody multiset. Na pierwszej ilustracji zastosowaliśmy funkcję początkowa () i wykazaliśmy jej funkcjonalność. Iterator odnoszący się do pierwszego członka multiset połączonego z tą metodą jest wartość zwracana funkcji. Drugi przykład pokazał, jak zastosować funkcję Multiset End (). Wyjście tej metody to iterator, który wskazuje obok ostatniego komponentu Multiset. Metoda Count () jest stosowana w następnej instancji, aby zbadać, co dzieje się w kodzie. Ta funkcja wynosi wszystkie dostępne liczby całkowite i dzielą ten sam klucz. Następnie uruchamiamy program za pomocą funkcji Erase (). Element jest usuwany z zestawu za pomocą tego podejścia. Aby dodać element do zestawu, ostatecznie wykorzystaliśmy technikę Insert ().