Tabela skrótów służy do skonstruowania zestawu nieopisanego, w którym wartości są konwertowane na indeksy tabeli skrótów, aby upewnić się, że wstawianie wartości jest zawsze losowo przypisywane. Faktem jest, że działają wystarczająco dobrze i zwykle zapewniają ciągłe wyszukiwanie czasu. Wszystkie funkcje w zestawie nieopisanym zwykle wymagają stałego czasu o (1). Chociaż w najgorszej sytuacji mogą oni zająć czas liniowy O (n) na podstawie algorytmu haszu operacyjnego.
Zestaw nie uporządkowany może obejmować jakiekolwiek klucze, niezależnie od tego, czy są one predefiniowane, czy zdefiniowane przez użytkownika danych danych. Ale ilekroć deklarujemy klucze struktur danych zdefiniowanych przez użytkownika, musimy zatem wskazać metodę porównawczą, która jest używana do porównania kluczy.
Różnica między zestawem ustawionym i nieopisanym
Zestaw to uporządkowana kolekcja odrębnych kluczy. Ale zestaw nie zamówiony to zbiór kluczy, które można ułożić w dowolnej sekwencji. Implementacja zestawu jako zrównoważonej struktury drzewa umożliwia zachowanie kolejności komponentów. Operacje zestawu mają złożoność czasu O (log n), ale zestaw nieopisany ma O (1). Dla zestawu nieo uporządkowanego zdefiniowane są wiele metod. Ale najpopularniejsze to rozmiar i pusta metoda przechowywania, znalezienie wartości klucza oraz wstawianie i usuwanie do konfiguracji. Tylko odrębne klawisze są obsługiwane przez zestaw nie zamówiony; W przypadku zduplikowanych klawiszy można zastosować multiset nieuporządkowany.
Funkcje używane do zestawów nie zamówionych
Zestaw nie uporządkowany ma następujące metody:
Wykonanie różnych funkcji nieoprzedanych w języku C ++ jest omówione w tym artykule.
Przykład 1:
Średni czas przetwarzania funkcji FINK (), insert () i erase () jest stały. Jeśli klucz nie jest obecny w zdefiniowanym zestawie, metoda Find () zapewnia iterator do funkcji end (); w przeciwnym razie zwraca iterator do atrybutu kluczowego. Aby uzyskać klucz, odwołując się do wartości kluczowych do * operatora, iterator działa jako wskaźnik do kluczowych atrybutów. Poniżej znajduje się instancja deklaracji dla funkcji FINK (), insert () i iteracji w zestawie nieopisanym.
#włączaćUwzględniamy plik nagłówka na początku tego kodu. Następnie wprowadzamy standardową przestrzeń nazw jako STD. Następnie wzywamy funkcję Main (). W ramach tej funkcji deklarujemy zestaw nieopisany. Tutaj używamy zestawu nieopisowanego do układania elementów zestawów. Podajemy ciąg jako parametr funkcji nieopisanej. Następnie wkładamy różne struny w zestawach. Mijamy liczne struny jako argumenty funkcji insert (). Następnie określamy wartość klucza za pomocą słowa kluczowego „klucz”. Metoda Find () jest stosowana w następnym etapie. Ta funkcja jest stosowana, aby znaleźć wymagany ciąg zestawu.
Wykorzystujemy metodę END () do zakończenia ciągów. Ta funkcja zwraca iterator, gdy klucz nie istnieje w zestawie. Komenda „cout” jest stosowana do wydrukowania instrukcji. Następnie ponownie zainicjujemy wartość atrybutu „klucz”. Znajdujemy wartość atrybutu w ciągu za pomocą funkcji FINK () i zakończamy ciąg za pomocą metody end (). Stosujemy oświadczenie „cout”, aby pokazać wynik. Iternujemy cały zestaw i drukujemy zawartość zestawu za pomocą instrukcji „Cout”. Używamy metody SET nie zamówionej, a także deklarujemy iterator jako „ja”. Pętla „for” jest zatrudniona.
Najpierw zainicjujemy zmienną, a następnie używamy funkcji początkowej (), aby uruchomić określony ciąg. Ponadto definiujemy stan pętli. Funkcja end () jest wywoływana. Wartość iteratora jest zwiększana o 1. Ostatecznie instrukcja „cout” służy do pokazania wartości iteratora.
Przykład 2:
W takim przypadku wykonamy kod, w którym zadeklarujemy listę różnych wartości, a następnie znajdziemy wszystkie duplikaty z tej listy za pomocą funkcji nieopisanej.
#włączaćTutaj dołączamy bibliotekę. W następnym kroku wykorzystujemy standardową przestrzeń nazw jako STD. Używamy metody print (), aby wyświetlić replikę w zdefiniowanej tablicy za pomocą zestawu nieopisanego. Zapewniamy tablicę i zmienną do zwiększenia liczby całkowitej jako argumenty metody printduplicates ().
Teraz deklarujemy, że nieuporządkowane zestawy do nabycia i uratowania duplikatów. Używana jest funkcja zestawu nieopisanego. Podajemy liczbę całkowitą jako jej parametr. Następnie wykorzystujemy inną funkcję zestawu nieopisanego, aby znaleźć zduplikowane elementy. Tutaj stosujemy pętlę „for”. Ogłaszamy zmienną pętli „for”. Następnie określamy warunek. Następnie zwiększamy wartość „J”. Nazywamy funkcję Find (), aby znaleźć zdefiniowany element w tablicy. Przekazujemy konkretny element jako argument tej funkcji. Jeśli wymagany element jest już obecny w tablicy, wstawiamy ten element do zestawu duplikatów.
Pokazujemy zduplikowane wartości tablicy za pomocą instrukcji „Cout”. Oświadczamy zmienną „to” iteratora dla zestawu nieopisanego. Zastosowana jest pętla „for”. Następnie metody początkowe () i end () są stosowane w pętli „for”. Następnie nazywamy funkcję Main (). Zainicjujemy zmienną „a”. Następnie definiujemy elementy tablicy, a ta tablica jest przechowywana w zmiennej „A”. Znajdujemy rozmiar wymaganej tablicy za pomocą metody sizeof (). Przekazujemy tablicę jako parametr tej funkcji.
Dzielimy wynikową wartość według wielkości liczb całkowitych. Wartość, którą otrzymujemy po podzieleniu, jest przechowywana w zmiennej „B”. Wyświetlamy zduplikowane wartości tablicy za pomocą metody printduplicate (). Ostatecznie stosujemy polecenie „return 0”.
Przykład 3:
Element danych można dodać do nieuzasadnionego zestawu zestawu za pomocą funkcji biblioteki standardowej szablonu C ++ - funkcja insert (). Każdy element w zestawie nieopisanym ma określoną wartość i jest dodawany tylko wtedy, gdy jest niedostępny w zestawie. Ponieważ pojemnik stosuje kilka metod mieszania, wstawienie odbywa się automatycznie w punkcie, który optymalnie spełnia ten wymaganie. W rezultacie rozmiar kontenera jest znacznie wzmocniony przez liczbę odzyskanych elementów.
Parametry metody INSERT ():
Metoda zwraca parę, mając parę :: Najpierw skonfigurowany do iteratora odnoszący się do nowego zaktualizowanego elementu lub odpowiedniego komponentu już obecnego w zestawie. Jeśli dodano nowy element danych, para :: Drugi komponent w parie jest dostosowywany do true; W przeciwnym razie jest to podane jako fałszywe, jeśli identyczny element jest już obecny.
Poniższy program pokazuje wspomnianą funkcję:
#włączaćPrzede wszystkim integrujemy wymagane pliki nagłówka. Jest odpowiedzialny za funkcje wejściowe i wyjściowe. Plik nagłówka zawiera deklarację ciągów. Trzeci zawiera wszystkie nieoprzeżone zestawy. Wykorzystujemy standardową przestrzeń nazw jako STD. Następnie rozpoczynamy kodowanie wewnątrz ciała funkcji main () po wywołaniu funkcji main (). Korzystamy z nieoporządkowanego zestawu ciągów.
Tutaj definiujemy elementy mojego zestawu. Określamy dwa dni tygodnia. Teraz wskazujemy wartość ciągu, którą chcemy wstawić do wymaganego zestawu. Wkładamy ten ciąg przy użyciu metody insert (). Oświadczenie „cout” jest wykorzystywane do pokazania tekstu „Zestaw dni powszednich jest”. Ponownie używamy instrukcji „Cout” przed wprowadzeniem polecenia „Return 0”. To oświadczenie „cout” drukuje wszystkie nazwiska dni powszednie.
Wniosek
Zastosowanie funkcji zestawu C ++ nie jest omówione w tym artykule. Zaimplementowaliśmy kilka kodów oprogramowania Devc ++, w których wykorzystaliśmy wiele funkcji związanych z zestawami nieopisanymi. Zestawy nie zamówione to struktury danych, które mogą przechowywać różne komponenty w dowolnej kolejności i zapewniają wydajny dostęp do określonych elementów na podstawie ich wartości. W pierwszej kolejności wykorzystaliśmy wiele funkcji SET UNOORED, aby zbadać, jak działa kod. Za pomocą metody find () zidentyfikowaliśmy określony element w zestawie. Za pomocą funkcji end () zakończyliśmy zestaw nieopisany. Na drugiej ilustracji skonstruowaliśmy tablicę zawierającą różne liczby całkowite. Zarówno powtarzane, jak i nie powtórzone wartości są zawarte w tablicy. Aby znaleźć zduplikowane wartości w określonej tablicy, zastosowaliśmy metodę Find (). Metodę Insert () zastosowano w ostatnim przykładzie, aby dodać wartość do wymaganego zestawu nieopisanego.