Kontener typu unordered_map - tablica asocjacyjna
Stronę tą wyświetlono już: 5448 razy
Wstęp
Definicja klasy unordered_map mieści się w pliku nagłówkowym unordered_map i jest dostępna od standardu C++ 11 w kompilatorach ten standard obsługujących. Sama klasa różni się od opisywanej na stronie Programowanie → Podstawy C++ → Kontener typu map - tablica asocjacyjna tym, że nie wykonuje ona sortowania elementów, a kolejne elementy dodawane są na samym początku tejże tablicy asocjacyjnej dzięki czemu dodawanie elementów do obiektu klasy unordered_map jest znacznie szybsze.
Konstruktory klasy unordered_map
Standardowo klasa unordered_map udostępnia konstruktor bezparametrowy oraz konstruktor kopiujący. Pierwszy z nich tworzy obiekt klasy unordered_map nie posiadający elementów, drugi kopiuje elementy podanego jako argument obiektu tego samego typu.
Istnieje jeszcze możliwość zainicjalizowania obiektu klasy unordered_map elementami za pomocą konstruktora w następujący sposób:
Możliwe jest również skopiowanie zakresu danych z innego obiektu tego samego typu za pomocą konstruktora:
Dodawanie i odwoływanie się do elementów do obiektu klasy unordered_map
Elementy do obiektu klasy unordered_map można dodawać za pośrednictwem operatora [] w następujący sposób:
Ten sam operator umożliwia dostęp do wartości stojącej za danym kluczem:
Elementy można również dodawać za pomocą metody insert:
Sprawdzanie czy klucz istnieje i znajdowanie elementu stojącego za danym kluczem
Metoda find umożliwia sprawdzenie, czy dany klucz istnieje w tablicy asocjacyjnej:
Iterowanie po elementach obiektu klasy unordered_map
Po elementach obiektu klasy unordered_map można iterować wykorzystując wskaźnik zawierający pola first (klucz); second (wartość). Oto przykład:
W C++ 11 można iterować też w inny sposób:
Usuwanie elementów z obiektu klasy unordered_map
Metoda erase umożliwia usunięcie jednego elementu lub zakresu elementów z tablicy. Możliwe jest to poprzez podanie wskaźnika lub wskaźników (w przypadku usuwania zakresu danych) na elementy zawarte wewnątrz tejże klasy w następujący sposób:
Możliwe jest również posłużenie się wartościami kluczy:
Liczba elementów zawartych w obiekcie klasy unordered_map
Metoda size umożliwia uzyskanie informacji liczbie elementów zawartych w obiekcie klasy unordered_map.
Sprawdzanie, czy obiekt klasy unordered_map nie zawiera elementów
Metoda empty zwraca true, gdy obiekt klasy unordered_map nie zawiera elementów.
Tytuł:
C++ Zbiór zadań z rozwiązaniami
Autor:
Tomasz Jaśniewski
Tytuł:
Mikrokontrolery dla hobbystów. Projekty DIY w języku C i C++
Autor:
Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla
Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski
Tytuł:
Wprowadzenie do C++
Autor:
Michał Matlak
Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz
Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha
Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams
Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis
Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół
Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz