Qt - kontener typu QMap
Stronę tą wyświetlono już: 2469 razy
Kontener typu QMap umożliwia przechowywanie wartości w parach klucz → wartość. Jest więc to odpowiednik tablicy asocjacyjnej z języków skryptowych. Odpowiednikiem tego kontenera jest omówiony na stronie Programowanie → Podstawy C++ → Kontener typu map - tablica asocjacyjna. Wadą i zaletą (w zależności od kryteriów użycia) tego kontenera jest sposób organizacji danych, który sprawia, że dodawanie kolejnych elementów jest czasochłonne. Dzieje się tak dlatego, że dodawane elementy są jednocześnie sortowane z wykorzystaniem struktury kopca. Zaletą takiego rozwiązania jest bardzo szybkie odnajdowanie określonego elementu.
Dodawanie elementów
Już na etapie tworzenia obiektu klasy QMap można przypisać mu wartości gdy wykorzystywany jest tryb kompilowania w standardzie C++ 11:
Dodawanie kolejnych elementów może się odbywać np. tak:
Powyższy kod wyświetli:
QMap(("key1", 200)("key2", 300)("key3", 500)("key4", 400))
Pozyskiwanie informacji o liczbie elementów zawartych
Istnieją dwie metody length i size, które zwracają liczbę elementów zawartych w obiekcie klasy QMap.
Iterowanie po elementach klasy QMap
Iterowanie w stylu C++ 11 umożliwia w wydajny sposób dostęp jedynie do wartości:
Wynik działania powyższego kodu:
200 300
Dużo lepszym sposobem jest iterowanie z wykorzystaniem wskaźnika:
Jak widać tutaj mam dostęp do klucza i wartości za nim stojącej. Wynik działania powyższego kodu będzie więc następujący:
"key1" = 200 "key2" = 300
Można też iterować w następujący sposób:
Wynik działania powyższego kodu:
"key1" = 200 "key2" = 300
Metody zwracające listę kluczy lub wartości
Metoda keys i values zwracają odpowiednio listę QList zawierającą klucze lub wartości. Oto przykład użycia tych metod:
Wynik działania powyższego kodu:
keys: ("key1", "key2") values: (200, 300)
Usuwanie elementów
Metoda remove umożliwia usunięcie klucza wraz z wartością za nim stojącą:
Wynik działania powyższego kodu:
QMap(("key1", 200)("key2", 300)) QMap(("key1", 200))
Z kolei metodą clear można usunąć wszystkie elementy zawarte wewnątrz obiektu klasy QMap.
Zdejmowanie elementu stojącego za podanym kluczem i zwrócenie jego wartości
Metoda take usuwa dany klucz i zwraca jego wartość:
Wynik działania powyższego kodu:
QMap(("key1", 200)("key2", 300)) Take key2 value: 300 After take key2 value QMap(("key1", 200))
Zamiana miejscami zawartości dwóch obiektów klasy QMap
Metoda swap zamienia miejscami elementy dwóch obiektów klas QMap. Oto przykład:
Wynik działania powyższego kodu:
Before swap map: QMap(("key1", 200)("key2", 300)) map2 QMap(("key3", 400)("key4", 500)) After swap map: QMap(("key3", 400)("key4", 500)) map2 QMap(("key1", 200)("key2", 300))
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