Struktury C ++ STL do przechowywania elementów w określonej kolejności nazywane są zestawem. Zestaw musi mieć unikalne komponenty. Każdy element w zestawie może być zidentyfikowana przez jego wartość indywidualnie, więc służą one jako klucze. W C ++ możemy dodawać i usuwać elementy z zestawu; Nie możemy jednak zmienić wartości komponentów, ponieważ są one statyczne po umieszczeniu w zestawie."
Definicja zestawu w C++
Jak już wspomniano, zestawy to tylko rodzaj standardowych kontenerów bibliotecznych szablonów wykorzystywanych w C ++ do dokładnego przechowywania elementów. Zestawy można jedynie poddać metodom wstawienia i usunięcia. W obiekcie typu zestawu elementy są automatycznie zorganizowane w określonej kolejności. Nie jesteśmy w stanie zmienić ani zaktualizować wartości już istniejących komponentów w zestawie, ponieważ elementy w kontenerach są niezmienne. Określając to precyzyjnie, element w zestawie służy jako klucz dla siebie. Zestawy są włączone tylko do zawierania określonej wartości.
Kiedy korzystać z zestawów?
W programowaniu konkurencyjnym zestawy są szeroko stosowane jako pojemniki. Gdy konieczne jest przechowywanie przedmiotów w sposób skategoryzowany, możemy rozważyć zastosowanie zestawów, ale pamiętaj, że zestawy nie pozwalają na przechowywanie powtarzanych wartości. Po wprowadzeniu wartości nie można zmienić wartości.
Wdrażanie zestawów
Aby wchodzić w interakcje z zestawami, 2 główne pliki nagłówka powinny zostać zintegrowane. Dostęp do zestawów jest dostępny, używając iteratorów. Zintegruj #include i #include w swoim kodzie. Mamy wybór użycia tego jednego pliku nagłówka, a nie tych dwóch. Biblioteka służy jako substytut wyżej wymienionych plików nagłówka. Możemy zastosować ten jeden plik nagłówka, ponieważ zawiera on wszystkie pliki nagłówka. Do definiowania zestawów na poziomie wewnętrznym używane są drzewa wyszukiwania binarnego.
Ustaw cechy w C++
Poniżej znajdują się niektóre z wspólnych atrybutów zestawu w C ++:
Składnia zestawu
Poniżej znajduje się STD :: Set Deklaracja z biblioteki „Set”:
Parametry
Zestaw pojemnika może pomieścić unikalne komponenty. Może to być obiekt funkcyjny lub wskaźnik funkcji. Mniej jest wartością domyślną i zapewnia takie same wyniki, jak używanie mniej niż niż niż wyrażenie (x Funkcje na zestawach W C ++ zestawy mogą być poddawane szerokiej gamie operacji. Oceńmy niektóre z głównych technik zestawu. Przykład nr 1 W tym przypadku zestaw zostanie zainicjowany. W C ++ określamy różne typy elementów, które zostaną umieszczone w zestawie po jego utworzeniu. Punkty danych zestawu są zwykle przechowywane w kolejności rosnącej. Większą funkcję można wykorzystać do przechowywania danych w kolejności malejącej. Pusty zestaw To są liczne techniki deklarowania zestawu. Pliki nagłówka i zostaną zintegrowane najpierw. Następnie zostanie wykorzystana standardowa przestrzeń nazw. Funkcja main () zostanie wywołana. Pierwszy zestaw zostanie zainicjowany i będzie to pusty zestaw, ponieważ nie zawiera żadnego elementu. Drugi zestaw zostanie ogłoszony jako pusty zestaw w kolejności malejącej. Nowy zestaw zostanie zainicjowany przez dodanie do niego różnych liczb całkowitych. Ten zestaw zawiera cztery elementy. Ponadto zainicjujemy nowy zestaw o nazwie „S4” za pomocą innego zestawu „S3”. Podaliśmy wartości S3 jako parametry S4. Teraz zestaw zostanie zadeklarowany z tablicy. Określamy wartości w tablicy, a następnie zapisujemy te wartości w zmiennej „A”. Piąty zestaw zawiera 4 wartości tablicy. Następnie zdefiniujemy iterator dla tych wymaganych zestawów. Zdobędziemy wartości wszystkich zestawów za pomocą pętli „dla”. Przykład nr 2 Ta ilustracja pokazuje, jak działają metody wstawiania i usuwania zestawu. Wymagane biblioteki zostaną uwzględnione na początku programu. Standardowa przestrzeń nazw zostanie dodana jako „STD”. Teraz zostanie wywołana metoda main (). Zadeklarujmy różne zestawy. Wywołamy metodę INSERT (), aby dodać wartości do zestawu. Różne wskaźniki zostaną utworzone i nazwane „P_1”, „P_2” i „P_3”. Iterator zostanie ogłoszony jako te wskazówki. Oświadczenie „cout” zostanie użyte do przedstawienia wiersza „Wartości zestawu są”. Teraz pętla „for” zostanie wykorzystana do pokazania wszystkich wstawionych wartości zestawu. Begin () byłby wywoływany, aby uruchomić wartości zestawu do wydrukowania, a metody end () byłyby zastosowane w celu zakończenia wartości zestawu. Te metody zostaną wywołane w pętli „dla”. Konstruktor pierwszego wskaźnika zostanie zdefiniowany w oświadczeniu „Cout”. Teraz wykonamy kolejny zestaw, organizując wartości w kolejności malejącej. Pozycje pierwszego i drugiego wymaganego zestawu są takie same. Funkcja Find () byłaby wywoływana na elementach pierwszego zdefiniowanego zestawu. Ta funkcja otrzymuje zdefiniowane wartości z zestawu. Teraz zastosujemy metodę Erase () do usuwania wartości z pierwszego zestawu. Wartości, które zostaną usunięte, wynoszą od 22 do 88. Instrukcja „Cout” zostanie użyta do pokazania tekstu „Wartości zestawu po użyciu funkcji Erase ()”. Aby pokazać wartości, zostanie wykorzystana pętla „for”. Wtedy zostanie ogłoszony konstruktor pierwszego wskaźnika. Teraz używamy pętli „for” do drukowania elementów drugiego wymaganego zestawu. Instrukcja „cout” drukuje wiersz „Wartości drugiego zestawu są”. Przed dodaniem polecenia „return 0” zostanie utworzony konstruktor zmiennej iterator. Przykład nr 3 W tym przykładzie zostaną użyte dwie funkcje, znaleźć () i wymazować. Jeśli element jest zidentyfikowany, metoda Find () wytwarza iterator odnoszący się do niego; W przeciwnym razie zapewnia iterator odnoszący się do końca zestawu. Elementy w zestawie usuną za pomocą funkcji Erase (). Program obejmie odpowiednie biblioteki na początku nazywane . Standardowa przestrzeń nazw jako „STD” zostanie wprowadzona. Odniesienie do funkcji main () zostanie teraz wykonane. Najpierw określ zestaw. Aby uwzględnić wartości w zestawie, użylibyśmy funkcji Insert (). Iterator zostanie zidentyfikowany jako „I”; Wartości odpowiedniego zestawu zostaną wyświetlone za pomocą polecenia „Cout”. Pętla „for” zostanie teraz używana do wyświetlania wszystkich włożonych wartości zestawu zestawu. Funkcja początkowa () zostanie użyta do rozpoczęcia drukowania wartości zestawu, a metoda end () zostanie użyta do zakończenia drukowania wartości zestawu. Te zdefiniowane metody byłyby zastosowane w pętli „dla”. Oświadczenie „cout” zadeklaruje konstruktor iteratora. Tekst „zaktualizowany zestaw” zostanie wyświetlony za pomocą instrukcji Cout. Komponenty pierwszego zestawu zostaną określone, wykorzystując funkcję FINK (). Zdefiniowane wartości są uzyskiwane przez tę funkcję z zestawu. Aby usunąć wartości z pierwszego zestawu, użyjemy teraz metody Erase (). Do 25 wartości zostanie wyeliminowane. Korzystając z pętli „dla”, pozostałe liczby całkowite zostaną przedstawione. Oświadczenie „Cout” zapewni deklarację konstruktora iteratora. Operacje dolne i górne związane z wartościami zestawu zostaną przeprowadzone. Wartości 45 i 17 zestawu byłyby dostarczone do funkcji dolnej granicy (), która następnie użyłaby polecenia „cout” do wydrukowania wyniku. Te podobne wartości w zestawie będą traktowane do metody górnej granicy (). Wartość wyniku zostanie wydrukowana przez polecenie „Cout”. Polecenie „Powrót 0” zostanie dodane na końcu. Wniosek W tym przewodniku omówiliśmy funkcje zestawu C ++. Podobnie jak inne standardowe pakiety biblioteczne, zestaw C ++ jest kluczowy. Ułatwia programistom wyodrębnienie i manipulowanie wartościami. Wdrożyliśmy trzy programy. Inicjalizacja zestawów jest obsługiwana w pierwszym przykładzie. Drugi wyświetla dodatki i usunięcie wartości z zestawu. W końcowym przypadku wybieramy kilka wartości z zestawu, a następnie je usuwamy.
#włączać
za pomocą przestrzeni nazw Std;
int main ()
sets1;
ustawić
ustawić
ustawić
int ar [] = 15, 24, 75, 51;
SET S5 (AR, AR+4);
set :: Iterator i;
dla (auto i = s5.zaczynać(); I!= S5.end (); i ++)
Cout<
zwrot 1;
za pomocą przestrzeni nazw Std;
int main ()
Ustaw s1;
S1.wstaw (22);
S1.wstaw (33);
S1.wstaw (56);
S1.wstaw (9);
S1.wstaw (67);
S1.wstaw (47);
S1.wstaw (88);
set :: iterator p_1, p_2, p_3;
Cout<< " The values of the set are: \n" ;
dla (p_1 = s1.zaczynać() ; p_1 != S1.koniec() ; P_1 ++)
Cout<< *p_1 << " " ;
Cout<
ustawić
p_2 = s1.znaleźć (22);
p_3 = s1.znaleźć (88);
S1.usuń (p_2, p_3);
Cout<< " The values of the set after using erase() function: \n " ;
dla (p_1 = s1.zaczynać() ; p_1 != S1.koniec() ; P_1 ++)
Cout<< *p_1 << " ";
Cout<
dla (i = s2.zaczynać() ; I != S2.koniec() ; i ++)
Cout<< *i<< " ";
powrót 0;
za pomocą przestrzeni nazw Std;
int main ()
sets_1;
S_1.wstaw (45);
S_1.wstaw (12);
S_1.wstaw (17);
S_1.wstaw (89);
S_1.wstaw (25);
S_1.wstaw (14);
S_1.wstaw (78);
S_1.wstaw (34);
set :: Iterator i;
Cout<<"Values of required set: \n";
dla (i = s_1.zaczynać() ; I != S_1.koniec() ; i ++)
Cout<<*i<< " ";
Cout<
S_1.usuń (s_1.początek (), s_1.znaleźć (25));
dla (i = s_1.zaczynać() ; I!= S_1.koniec() ; i ++)
Cout<< *i<< " " ;
Cout<
Cout<< *s_1.lower_bound( 45 )<
Cout<< *s_1.lower_bound( 17 ) <
Cout<< *s_1.upper_bound( 45 ) <
Cout<< *s_1.upper_bound( 17 ) <