Mapa STL – C++. Problem polega na tym, że najczęściej chcielibyśmy przechowywać w zbiorze elementy jakiegoś bardziej złożonego typu, których on nie będzie.

Slides:



Advertisements
Podobne prezentacje
Język C/C++ Funkcje.
Advertisements

C++ wykład 13,14,15 (16/23/ ) STL.
Standardowa biblioteka języka C++
Programowanie obiektowe
Prowadzący: mgr inż. Elżbieta Majka
Standard Template Library
Programowanie I Rekurencja.
Filip Andrzejewski Remigiusz Chiluta
PROGRAMOWANIE STRUKTURALNE
Standard Template Library
Struktury.
Obsługa plików csv Do odczytu z pliku csv można użyć następującego kodu: $fp = fopen ("strony.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";"))
Podstawy programowania PP – WYK3 Wojciech Pieprzyca.
Podstawy programowania PP – WYK2 Wojciech Pieprzyca.
Podstawy programowania
Podstawy programowania PP – LAB4 Wojciech Pieprzyca.
Język ANSI C Operacje we/wy
#include #include main () { cout
Jak uczę programowania?
Programowanie obiektowe W2
Techniki i języki programowania
Podstawy programowania
Podstawy informatyki (4)
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy programowania
Wczytywanie danych z klawiatury, komentarze, zmienne.
Zadanie Dev C++.
Przekazywanie argumentów
Podstawy programowania
Programowanie strukturalne i obiektowe
Podstawy programowania w języku C i C++
Programowanie strukturalne i obiektowe
SQL - Structured Query Language
Programowanie strukturalne i obiektowe
Instrukcja for. Instrukcja warunkowa mgr inż. Agata Pacek.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Programowanie obiektowe 2013/2014
Kurs języka C++ – wykład 13 ( )
Programowanie w języku C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++ Przeładowanie operatorów Robert Nowak.
Programowanie strukturalne i obiektowe C++ Powtórzenie wiadomości z C++ Robert Nowak.
Komendy SQL do pracy z danymi
Pliki tekstowe – odczyt i zapis Zajęcia 11. Zapis do pliku tekstowego Prosty program pokazujący sposób zapisu do pliku tekstowego: // writing on a text.
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Wstęp do programowania wykład 3 Typy wyliczeniowe, tablice.
Wstęp do programowania Wykład 8 Łańcuchy, struktury i pliki Metoda dziel i zwyciężaj Metoda zachłanna.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Funkcje w Excelu Wyrażenia, które pobierają wartość lub wartości z komórek, przeprowadzają oprację i zwracają wartość. Funkcje upraszczają i skracają formuły.
„Filtry i funkcje bazodanowe w EXCELU”
Programowanie I Rekurencja.
ALGORYTMY I STRUKTURY DANYCH
STOS. STL (ang. Standard Template Library) jest to biblioteka zawierająca algorytmy, pojemniki, iteratory oraz inne konstrukcje w formie szablonów, gotowe.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Typy wyliczeniowe, kolekcje
Wskaźniki Elżbieta Labocha.
Programowanie I Rekurencja.
Przycisk uruchamiający napisany przez nas program
Zapis prezentacji:

Mapa STL – C++

Problem polega na tym, że najczęściej chcielibyśmy przechowywać w zbiorze elementy jakiegoś bardziej złożonego typu, których on nie będzie potrafił bezpośrednio porównywać (stwierdzać, że jeden jest większy od drugiego), a przez to sortować. Zwykle jest tak, że element posiada szereg pól, z których jeden powinien stanowić kryterium sortowania i wyszukiwania. Tutaj z pomocą przychodzi kolejny kontener STL - mapa. Mapa jest bardzo podobna do zbioru, ale przechowuje kolekcję elementów - tzw. par, z których każda posiada klucz i wartość. Elementy sortuje sobie według klucza i według niego pozwala szybko je wyszukiwać. Rozważmy przykład bazy danych dla firmy, w której mają być przechowywane informacje o klientach w postaci par: jakiś numer identyfikacyjny (liczba) -> opis (łańcuch).

#include using namespace std; int main() { // deklaruję mapę map m; // dodaję elementy m.insert(make_pair(7, "Jan Kowalski - bardzo solidny klient") ); m.insert(make_pair(666, "Maciej Nowak - Klient bardzo niesolidny") ); // znajduję osobę o numerze 7 map ::iterator it = m.find(7); // jeśli się znalazła if ( it != m.end() ) { // wypisuję jej opis pair p = *it; cout << p.second <<endl; } return 0; }

Cała trudność w nauczeniu się używania mapy polega na zrozumieniu, jak należy używać par STL. #include - taki nagłówek trzeba włączyć, żeby skorzystać z mapy STL. map - takiego typu jest zadeklarowana w przykładzie mapa m. Jak widać, w nawiasie kątowym podaje się dwa typy - typ klucza i typ wartości. Elementami mapy będą nierozłącznie związane pary - w tym przypadku pary liczba - łańcuch. Funkcja insert() wstawia do mapy parę. Żeby ją utworzyć, używamy funkcji make_pair(), która pobiera dwie niezależne wartości i zwraca parę, która je zawiera zestawione razem. Funkcja find() wymaga tylko podania klucza, a zwraca iterator pokazujący na odnaleziony element (czyli na parę). Jeśli element się nie znajdzie, zwrócony zostaje błędny iterator - równy wartości zwracanej przez funkcję end(). pair - takiego typu jest tak naprawdę każda para w naszym przykładzie, czyli element naszej mapy. Deklarujemy osobną zmienną tego typu i przepisujemy do niej parę, na którą pokazuje otrzymany iterator. Na ekran wypisana zostaje wartość, czyli drugi spośród składników pary. Znajduje się on w polu o nazwie second i jest łańcuchem. Pierwszy składnik pary, który w mapie pełni rolę klucza, znajduje się w polu o nazwie first i w tym przykładzie jest liczbą.

Zapamiętaj !!!!!! Mapa jest dobra, kiedy najważniejsze jest szybkie znajdowanie elementów.

Życzymy miłego programowania: Marianna Błażewicz Dariusz Szmechtig