Utwórz zestaw STD w C ++

Utwórz zestaw STD w C ++
Zestaw w C ++ jest bardzo podobny do zestawu matematyki. Poniżej znajduje się zestaw liczb całkowitych:
-5, 6, 9, 8, -2

Poniżej znajduje się zestaw znaków:

„B”, „M”, „A”, „C”, „T”, „O”, „Q”

Poniżej znajduje się zestaw ciągów (elementy w tabeli czytania):

„Lampa czytania”, „komputer”, „Pen”, „Pencil”, „ćwiczenia”, „Podręczniki”

W C ++ każda wartość w każdym z powyższych zestawów, nazywa się klucz.

W C ++ zestaw nie pozwala na duplikat wartości. Jednak nadal w C ++ multiset pozwala na duplikat wartości. Ten artykuł ustawiony i nie rozwiązuje multiset.

STD oznacza standard. Ten artykuł dotyczy sposobu utworzenia standardowego zestawu w C++. Dodanie elementów (wartości) do zestawu jest również wspomniane.

Biblioteka

C ++ ma jedną główną bibliotekę, zwaną standardową biblioteką C ++. Ta biblioteka zawiera sub biblioteki, które są również podzielone na kolejne sub biblioteki, które są podzielone dalej na bardziej sub biblioteki. Dolne sub-library można postrzegać jako moduły. Sub-ubibrarna zainteresowania pierwszego poziomu nazywa się biblioteką kontenerów. Biblioteka kontenerów ma subbibrarię, zwaną biblioteką kontenerów asocjacyjnych. Biblioteka kontenerów asocjacyjnych ma subbibrarę o nazwie Set Library. Tę bibliotekę zestawu można uznać za moduł. Aby zbiory kodu, należy je uwzględnić na początku programu w następujący sposób:

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

iostream powinien być zawsze uwzględniony, jeśli terminal (konsola) ma być używany do wyjścia (i wejścia). Drugi wiersz w tym segmencie kodu zawiera moduł ustawiony. Trzeci wiersz to stwierdzenie kończące się półkolisem, nalega na użycie standardowej przestrzeni nazw.

Aby skompilować program, z kompilatorem G ++ 20 dla C ++ 20, użyj następującego polecenia:

G ++ -Std = C ++ 2A nazwa pliku.CPP -O nazwa pliku

Uruchom program z:

./Nazwa pliku

Zakładając, że skompilowany plik znajduje się w katalogu użytkownika (Home).

Konstruowanie zestawu

Konstruowanie lub tworzenie zestawu jest głównym numerem tego artykułu. Istnieje wiele konstruktorów zestawu. Tylko najczęściej używane zostaną tutaj wyjaśnione.

Konstruowanie pustego zestawu

Poniższe stwierdzenie skonstruuje pusty zestaw:

ustawić st;

Zaczyna się od typu klasy. Następnie następują nawiasy kątowe, które mają typ elementów (wartości). Jest przestrzeń, a następnie nazwa zestawu (ST).

Wstawienie wartości

Elementy można wstawić metodą Insert () klasy SET, w następujący sposób:

ustawić st;
St.wstaw (-5); St.wstaw (6); St.wstaw (9);
St.wstaw (8); St.wstaw (-2);

Zestaw -5, 6, 9, 8, -2.

Zwracając iterator

Klasa zestawu nie ma operatora kwadratowych, jak tablica. Aby skanować elementy zestawu, potrzebny jest iterator. Jeśli nazwa zestawu jest ST, wówczas poniższe instrukcje zwróci iterator, który wskazuje na pierwszy element zestawu:

ustawić:: iterator iter = st.zaczynać();

Doceń składnię tego stwierdzenia.

Rozmiar zestawu

Poniższe stwierdzenie zwraca rozmiar zestawu:

int sz = st.rozmiar();

Zmienna, SZ, utrzymuje rozmiar zestawu.

Wartości odczytu zestawu

Poniższy program wykorzystuje iterator do odczytu wszystkich wartości w zestawie:

ustawić st;
St.wstaw (-5); St.wstaw (6); St.wstaw (9);
St.wstaw (8); St.wstaw (-2);
dla (set:: iterator iter = st.zaczynać(); iter != st.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście to:

-5, -2, 6, 8, 9,

Zwróć uwagę, w jaki sposób użyto na pętlę i iterator. „St.end () ”zwraca iterator końcowy, który wskazuje tuż po ostatnim elemencie.

Z ciąży jako elementami moduł ciągów musi być dołączony do;

#włączać

Rozważ następujący kod z elementami ciągu:

ustawić st;
St.wstaw („Lampa czytania”); St.wstaw („komputer”); St.wstaw („Pen”);
St.wstaw („ołówek”); St.wstaw („książki ćwiczeń”); St.wstaw („podręczniki”);
dla (set:: iterator iter = st.zaczynać(); iter != st.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście to:

komputer, książki ćwiczeń, długopis, ołówek, lampa do czytania, podręczniki,

Zauważ, że gdy wartości są dodawane za pomocą polecenia insert (), zestaw jest sortowany wewnętrznie.

Należy również pamiętać, że aby używać ciągów, klasa ciągów należy uwzględnić; W przeciwnym razie to wskaźniki do sznurków, które będą sortowane, a nie same literały alfabetyczne.

set (const set & x)
Jest to zestaw zestawu, który uznałby identyfikator innego zestawu jako argument, aby skonstruować nowy zestaw. Poniższy kod to ilustruje:

SET ST;
St.wstaw (-5); St.wstaw (6); St.wstaw (9); St.wstaw (8); St.wstaw (-2);
ustawić ST2 (ST);
dla (set:: iterator ITER = ST2.zaczynać(); iter != ST2.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście to:

-5, -2, 6, 8, 9,

set (inicitizer_list, const compare & = compare (), const alokator & = alokator ())

To jest konstruktor, w którym drugie i trzecie argumenty są opcjonalne. Gdy nie podano, wartości domyślne są wybierane przez C++. Pierwszym argumentem jest lista inicjalizator (tablica literała). Poniższy kod ilustruje użycie konstruktora:

ustawić st („b”, „m”, „a”, „c”, „t”, „o”, „q”);
dla (set:: iterator iter = st.zaczynać(); iter != st.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście to:

A, b, c, m, o, q, t,

Zauważ, że dane wyjściowe jest sortowane, pomimo faktu, że wejście jest nieporadowanym listy inicjalizatora.

Notatka: W przypadku listy inicitizer_, nawiasy wywołania konstruktora, można pominąć, jak w następującym kodzie:

ustawić St „B”, „M”, „A”, „C”, „T”, „O”, „Q”;
dla (set:: iterator iter = st.zaczynać(); iter != st.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście jest nadal:

A, b, c, m, o, q, t,

Kopiuj konstruktory

Zestaw można utworzyć, przypisując identyfikator innego zestawu do identyfikatora nowego zestawu lub przypisując zestaw literalny (literał macierzy) do identyfikatora nowego zestawu.

set & operator = (const set & x)
To przypisuje identyfikator innego zestawu do identyfikatora nowego zestawu, jak pokazano, w ten sposób:

ustawić st;
St.wstaw („b”); St.wstaw („m”); St.wstaw („a”); St.wstaw („c”);
St.wstaw („t”); St.wstaw („o”); St.wstaw („q”);
ustawić ST2 = ST;
dla (set:: iterator ITER = ST2.zaczynać(); iter != ST2.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście to:

A, b, c, m, o, q, t,

set & operator = (inicitizer_list)
To przypisuje zestaw dosłowny (literał tablicy) do identyfikatora nowego zestawu, jak pokazano, w ten sposób:

ustawić st = „b”, „m”, „a”, „c”, „t”, „o”, „q”;
dla (set:: iterator iter = st.zaczynać(); iter != st.koniec(); ITER ++)
Cout << *iter << ", ";
Cout << endl;

Wyjście to:

A, b, c, m, o, q, t,

Wniosek

Set Literal w C ++ jest podobny do matematyki. Zestaw, który nie jest sortowany, staje się sortowany, wznoszący się po budowie (tworzenie) z ustawieniami domyślnymi. STD oznacza standard. Powszechne sposoby tworzenia zestawu zostały zilustrowane powyżej.