Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40
|
|
- Wacław Kot
- 4 lat temu
- Przeglądów:
Transkrypt
1 Programowanie w C++ Wykład 7 Katarzyna Grzelak 23 kwietnia 2018 K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40
2 Standard Template Library (STL) K.Grzelak (Wykład 7) Programowanie w C++ 2 / 40
3 C++ Templates (Szablony) - wstęp Problem Funkcje: ten sam algorytm, ale różne dane wejściowe. Możliwe rozwiazanie Przeładowanie nazw funkcji K.Grzelak (Wykład 7) Programowanie w C++ 3 / 40
4 Przeładowanie nazw funkcji Przykład K.Grzelak (Wykład 7) Programowanie w C++ 4 / 40
5 C++ Templates (Szablony) Cel Funkcja (lub klasa) zdefiniowana niezależnie od typów zmiennych których używa. Rozwiazanie Szablony (templates) K.Grzelak (Wykład 7) Programowanie w C++ 5 / 40
6 Szablony funkcji (function templates) Definicja Niekompletna funkcja Brakuje części informacji: Sparametryzowane typy zmiennych K.Grzelak (Wykład 7) Programowanie w C++ 6 / 40
7 Szablony funkcji (function templates) Przykład template<typename T> void zamiana (T &a,t &b) Równoważny zapis (mylący): template<class T> void zamiana(t &a,t &b) Szablon funkcji reprezentuje nieskończona liczbę funkcji: K.Grzelak (Wykład 7) Programowanie w C++ 7 / 40
8 Szablon funkcji Przykład K.Grzelak (Wykład 7) Programowanie w C++ 8 / 40
9 STL STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki: 1 Pojemniki (kontenery) 2 Iteratory 3 Algorytmy K.Grzelak (Wykład 7) Programowanie w C++ 9 / 40
10 1) Pojemniki STL Pojemniki służa do przechowywania grup obiektów Vector Set Deque List Map K.Grzelak (Wykład 7) Programowanie w C++ 10 / 40
11 1) Pojemniki STL Pojemniki sekwencyjne: pozycja elementu w pojemniku zależy od czasu i miejsca gdzie został wstawiony, a nie zależy od jego wartości. Rodzaje: vector (wektor-tablica) deque (kolejka) list (lista) K.Grzelak (Wykład 7) Programowanie w C++ 11 / 40
12 1) Pojemniki STL Pojemniki asocjacyjne: aktualna pozycja elementu w pojemniku zależy od jego wartości set,multiset (zbiór) map,multimap (słownik) K.Grzelak (Wykład 7) Programowanie w C++ 12 / 40
13 2) Iteratory STL Iteratory służa do poruszania się po pojemnikach Iteratory działaja jak wskaźniki Nie tylko dla sekwencyjnych pojemników! (smart pointers) Zwykły wskaźnik z języka C++ jest iteratorem K.Grzelak (Wykład 7) Programowanie w C++ 13 / 40
14 3) Algorytmy STL Algorytmy to szablony funkcji sort search count replace... Algorytmy STL działaja dla każdego pojemnika. K.Grzelak (Wykład 7) Programowanie w C++ 14 / 40
15 Dygresja - nazewnictwo Metoda to funkcja działajaca na rzecz konkretnego obiektu. Składnia w kropka, przykład: string nazwa; cout «nazwa.size() «endl; Powyżej size() jest metoda z klasy string K.Grzelak (Wykład 7) Programowanie w C++ 15 / 40
16 1) Pojemniki STL Vector Set Deque List Map K.Grzelak (Wykład 7) Programowanie w C++ 16 / 40
17 1) Pojemniki STL To który pojemnik wybrać, zależy od problemu który rozwiazujemy. K.Grzelak (Wykład 7) Programowanie w C++ 17 / 40
18 1) Pojemniki STL - vector vector plik nagłówkowy #include<vector> dynamiczna tablica operator indeksowania [] lub metoda at() szybkie dodawanie(push_back()) i usuwanie(pop_back()) elementów na końcu wektora K.Grzelak (Wykład 7) Programowanie w C++ 18 / 40
19 1) Pojemniki STL - vector vector możliwe stworzenie pustego wektora i rozszerzanie go (zmniejszanie) na bieżaco najszybciej działa, jeśli z góry zarezerwujemy obszar pamięci metoda reserve() K.Grzelak (Wykład 7) Programowanie w C++ 19 / 40
20 1) Pojemniki STL - deque deque (double ended queue) plik nagłówkowy #include<deque> dynamiczna tablica operator indeksowania [] lub metoda at() szybkie dodawanie i usuwanie elementów na obu końcach: metody: push_back(), pop_back(), push_front(), pop_front() K.Grzelak (Wykład 7) Programowanie w C++ 20 / 40
21 1) Pojemniki STL - list list plik nagłówkowy #include<list> brak indeksowania! szybkie dodawanie i usuwanie elementów nie tylko na obu końcach, ale także w środku listy (metody: insert() i erase()). K.Grzelak (Wykład 7) Programowanie w C++ 21 / 40
22 1) Pojemniki STL - set set,multiset (zbiór) plik nagłówkowy #include<set> elementy automatycznie sortowane (względem wartości) każdy element może się pojawić w pojemniku set tylko raz multiset to samo co set, ale dany element może pojawić się więcej niż raz K.Grzelak (Wykład 7) Programowanie w C++ 22 / 40
23 1) Pojemniki STL - set set,multiset (zbiór) implementacja - zbalansowane drzewa binarne szybkie przeszukiwanie K.Grzelak (Wykład 7) Programowanie w C++ 23 / 40
24 1) Pojemniki STL - map map,multimap (słownik) plik nagłówkowy #include<map> zawiera pary elementów: (klucz, wartość) elementy automatycznie sortowane (względem klucza) każdy klucz może się pojawić w pojemniku map tylko raz multimap to samo co map, ale dany klucz może pojawić się wiecej niż raz K.Grzelak (Wykład 7) Programowanie w C++ 24 / 40
25 1) Pojemniki STL - map map,multimap (słownik) implementacja - zbalansowane drzewa binarne szybkie przeszukiwanie elementów majacych określony klucz 7 y 4 y 9 x 2 y 5 q 8 y 11 w 1 x 3 z 6 y 10 q 12 z K.Grzelak (Wykład 7) Programowanie w C++ 25 / 40
26 2) Iteratory do poruszania się po pojemnikach, także tych o bardziej skomplikowanej strukturze operator * operator ++ operator ==!= operator = Zwykły wskaźnik jest iteratorem K.Grzelak (Wykład 7) Programowanie w C++ 26 / 40
27 2) Iteratory metoda begin() metoda end() begin() end() K.Grzelak (Wykład 7) Programowanie w C++ 27 / 40
28 2) Algorytmy Plik nagłówkowy #include<algorithm> Algorytmy działaja dla dowolnego pojemnika Globalne funkcje które działaja z iteratorami Algorytmy działaja dla zwykłych tablic K.Grzelak (Wykład 7) Programowanie w C++ 28 / 40
29 Przykład użycie zwykłych tablic + wskaźników + algorithm Algorytmy działaja dla zwykłych tablic Część 1 przykładowego programu - nagłówki K.Grzelak (Wykład 7) Programowanie w C++ 29 / 40
30 Przykład użycie zwykłych tablic + wskaźników + algorithm Algorytmy działaja dla zwykłych tablic Część 2 przykładowego programu - main K.Grzelak (Wykład 7) Programowanie w C++ 30 / 40
31 Przykład użycie zwykłych tablic + wskaźników + algorithm Część 3 przykładowego programu - funkcje K.Grzelak (Wykład 7) Programowanie w C++ 31 / 40
32 Więcej o pojemniku vector K.Grzelak (Wykład 7) Programowanie w C++ 32 / 40
33 vector Plik nagłówkowy #include<vector> Stworzenie pustego pojemnika do przechowywania obiektów typu int: vector<int> vec; Stworzenie pojemnika do przechowywania 10 obiektów typu double: vector<double> vec(10); Stworzenie pojemnika do przechowywania 10 obiektów typu double i inicjalizacja zerami vector<double> vec(10,0.); Iterator do poruszania się po pojemniku vector: vector<double>::iterator pos; K.Grzelak (Wykład 7) Programowanie w C++ 33 / 40
34 Metody dla wektora vector<int> vec; vec.push_back() - dodawanie elementu na końcu wektora vec.pop_back() - usuwanie elementu z końca wektora vec.size() - zwraca liczbę elementów vec.at(i) - zwraca element o indeksie i (sprawdzanie czy prawidłowy indeks) vec[i] - zwraca element o indeksie i (bez sprawdzania czy prawidłowy indeks) vec.clear() - usuwa wszystkie elementy K.Grzelak (Wykład 7) Programowanie w C++ 34 / 40
35 vector - Przykład bez iteratorów Nie zadziała, gdybyśmy chcieli zmienić vector na inny pojemnik. K.Grzelak (Wykład 7) Programowanie w C++ 35 / 40
36 vector - Przykład 2 bez iteratorów Nie zadziała, gdybyśmy chcieli zmienić vector na inny pojemnik. K.Grzelak (Wykład 7) Programowanie w C++ 36 / 40
37 vector - Przykład z iteratorami Bardziej uniwersalne. K.Grzelak (Wykład 7) Programowanie w C++ 37 / 40
38 vector - Przykład z algorytmem sortowania K.Grzelak (Wykład 7) Programowanie w C++ 38 / 40
39 Na koniec przykład użycia pojemnika map K.Grzelak (Wykład 7) Programowanie w C++ 39 / 40
40 Podsumowanie STL = pojemniki + iteratory + algorytmy K.Grzelak (Wykład 7) Programowanie w C++ 40 / 40
Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43
Programowanie w C++ Wykład 6 Katarzyna Grzelak 1 kwietnia 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31
Programowanie w C++ Wykład 8 Katarzyna Grzelak 7 maja 2018 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoProgramowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 6 Katarzyna Grzelak kwiecień 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoProgramowanie i struktury danych
Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne
Bardziej szczegółowoWykład 5 Wybrane zagadnienia programowania w C++ (c.d.)
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu
Bardziej szczegółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Bardziej szczegółowoBiblioteka standardowa C++
Biblioteka standardowa C++ Wejście/wyjście (iostream) Napisy (string) Napisy jako strumienie (sstream) STL Standard Template Library Pojemniki (kolekcje) Iteratory (wyliczanie elementów) Algorytmy (sortowanie,
Bardziej szczegółowoPojemniki Pojemnik to obiekt, którego zadaniem jest przechowywanie innych obiektów.
1 Wstęp Biblioteka standardowa C++ Wejście/wyjście (iostream) Napisy (string) Napisy jako strumienie (sstream) STL Standard Template Library Pojemniki (kolekcje) Iteratory (wyliczanie elementów) Algorytmy
Bardziej szczegółowoKontenery i iteratory. Wykorzystanie kontenerów w praktyce.
Instrukcja laboratoryjna nr 2 Programowanie w języku C 2 (C++ poziom zaawansowany) Kontenery i iteratory. Wykorzystanie kontenerów w praktyce. dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż.
Bardziej szczegółowoSTL: Lekcja 1&2. Filozofia STL
STL: Lekcja 1&2 Tematy: Filozofia STL Po co nam STL? Podstawowa zawartość STL Co warto znać zanim zaczniemy pracę z STL?: wskaźniki Praca na tekstach: klasa String Vector: nowy wymiar standardowych tablic.
Bardziej szczegółowoSTL Standardt Template Library (wprowadzenie)
STL Standardt Template Library (wprowadzenie) Biblioteka standardowych szablonów na dzień dzisiejszy stanowi jedną z najpotężniejszych możliwości języka C++ Zawiera szablony klas ogólnego przeznaczenia
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przestrzenie nazw Standardowa biblioteka szablonów
Bardziej szczegółowoZaawansowane programowanie w języku C++ Biblioteka standardowa
Zaawansowane programowanie w języku C++ Biblioteka standardowa Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Standardowa biblioteka szablonów (Standard Template
Bardziej szczegółowoAby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.
Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python. Pliki z rozwiązaniami projektu (wszystkie polecenia
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 8 - biblioteka standardowa. Kolekcje i iteratory 27 kwietnia 2007 Powtórzenie - sprytne wskaźniki Zalety: upraszczają zarządzanie obiektami na stercie Wady: narzuty Sprytne wskaźniki dostępne w
Bardziej szczegółowoKompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/
STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go
Bardziej szczegółowoJęzyk C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Bardziej szczegółowoDla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.
Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza
Bardziej szczegółowoSTL Standard Template Library
Literatura Przykłady: STL Standard Template Library Nicolai M. Josuttis: C++ Standard Library: A tutorial and Reference, 1st, Pearson 1999, (Polska wersja: Nicolai M. Josuttis: C++ Biblioteka standardowa
Bardziej szczegółowoProgramowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 14 Katarzyna Grzelak 3 czerwca 2019 K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27 Na ostatnim wykładzie: Konstruktor standardowy (domyślny) to taki, który nie ma żadnych argumentów
Bardziej szczegółowoW przypadku STL w specyfikacji nazwy pliku nagłówkowego brak rozszerzenia tj. <string> <string.h> zamiast
Wykład 12 - Biblioteka stadardowa.sxw 1 Przegląd biblioteki standardowej C++; W porównaniu z pierwszymi implementacjami i specyfikacjami C++ biblioteka standardowa języka C++ bardzo się rozrosła, a w latach
Bardziej szczegółowoJak Windows zarządza pamięcią?
Jak Windows zarządza pamięcią? System Windows definiuje dwa typy pamięci, często mylone przez użytkowników. Pamięć fizyczna (pamięc RAM zainstalowana w komputerze) Pamięć widziana przez daną aplikację
Bardziej szczegółowoProgramowanie Komponentowe Zarządzanie obiektami: kontenery
Programowanie Komponentowe Zarządzanie obiektami: kontenery dr inż. Ireneusz Szcześniak jesień 2016 roku Kontenery Kontener w C++ to generyczna struktura danych. Przechowuje elementy jednego dowolnego
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoProgramowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoStruktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać
Bardziej szczegółowoProgramowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
Bardziej szczegółowoTechnologie programowania Wykład 4. Szablony funkcji Notes. Szablony funkcji Notes. Szablony funkcji Notes. Notes. Przemek Błaśkiewicz.
Technologie programowania Wykład 4 Przemek Błaśkiewicz 9 maja 2017 1 / 54 Szablony funkcji Często w programach zachodzi potrzeba użycia funkcji, które co do mechanizmu działaja tak samo, ale różnia się
Bardziej szczegółowoSzablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Bardziej szczegółowoProgramowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus
Bardziej szczegółowoWykorzystanie elementów z biblioteki standardowej C++: vector, list, complex oraz string.
1 Wykorzystanie elementów z biblioteki standardowej C++: vector, list, complex oraz string. 1.Biblioteka standardowa w języku C++ Biblioteka standardowa to biblioteka zawierająca podstawowe funkcje i typy
Bardziej szczegółowoProgramowanie Obiektowo Zorientowane w języku C++ Biblioteka STL
Programowanie Obiektowo Zorientowane w języku C++ Biblioteka STL Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Bardziej szczegółowo10.1 Szablony... 1 10.2 Szablony funkcji... 2 10.3 Szablony klas... 5 10.4 Szablony jako wstęp do biblioteki STL... 10
.1 Szablony... 1.2 Szablony funkcji... 2.3 Szablony klas....4 Szablony jako wstęp do biblioteki STL....1 Szablony Szablony definiują sparametryzowane rodziny klas, funkcji. Szablony deklarujemy i definiujemy
Bardziej szczegółowoJęzyk C++ część 9 szablony klas. Jarosław Gramacki Instytut Informatyki i Elektroniki. szablony funkcji
Język C++ część 9 szablony klas Jarosław Gramacki Instytut Informatyki i Elektroniki szablony funkcji były omawiane na wcześniejszym wykładzie nazewnictwo: szablon funkcji wzorzec funkcji 2 szablony
Bardziej szczegółowoSTL: kontenery. Typy kontenerów STL. STL: kontenery. STL: kontenery. STL: kontenery. Typy kontenerów STL. deque (double-ended queue) list
Kontenery sekwencyjne: deque (kolejka dwustronna) deque (double-ended queue) implementacja kontenera zoptymalizowana pod kątem efektywności operacji dołączania i usuwania elementów z sekwencji na obu jej
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoProgramowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37
Programowanie w C++ Wykład 4 Katarzyna Grzelak 19 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Funkcje cd K.Grzelak (Wykład 1) Programowanie w C++ 2 / 37 Funkcja powtórzenie Funkcje == podprogramy
Bardziej szczegółowoSzablon klasy std::vector
Szablon klasy std::vector Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat
Bardziej szczegółowoProgramowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26
Programowanie w C++ Wykład 13 Katarzyna Grzelak 4 czerwca 2018 K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Bardziej szczegółowoJęzyki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:
Języki Programowania Prowadząca: dr inż. Hanna Zbroszczyk e-mail: gos@if.pw.edu.pl tel: +48 22 234 58 51 Konsultacje: piątek: 12.00 13.30 www: http://www.if.pw.edu.pl/~gos/students/jp Politechnika Warszawska
Bardziej szczegółowoC++: STL. STL: kontenery. STL: kontenery. STL: kontenery. STL: kontenery. Programowanie Obiektowe C++: Standard Template Library
Programowanie Obiektowe C++: Standard Template Library C++: STL Kontenery - wprowadzenie 1 Wprowadzenie Rozwiązanie większości zadań programistycznych polega na gromadzeniu i przetwarzaniu danych w ilości
Bardziej szczegółowoParadygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2016 2 Spis treści 1. Zadanie 3 5 1.1. Wprowadzenie.................................. 5 1.2. Obiekty funkcyjne................................
Bardziej szczegółowoC++: STL. STL: kontenery. STL: kontenery. STL: kontenery. STL: kontenery. Programowanie Obiektowe C++: Standard Template Library.
Programowanie Obiektowe C++: Standard Template Library C++: STL Kontenery 1 Wprowadzenie Rozwiązanie większości zadań programistycznych polega na gromadzeniu i przetwarzaniu danych w ilości nieznanej w
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Bardziej szczegółowoWykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,
Bardziej szczegółowoBiblioteka STL - wstęp. Biblioteka STL - literatura. Biblioteka STL - przegląd. Biblioteka STL - kwestie techniczne
Biblioteka STL - literatura Biblioteka STL - wstęp STL - Standard Template Library - Standardowa Biblioteka Szablonów Nicolai M. Josuttis - "C Biblioteka standardowa. Podręcznik programisty", Helion, 2003
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
Bardziej szczegółowoWprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Bardziej szczegółowoWprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
Bardziej szczegółowoJęzyk C++ Różnice między C a C++
Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci
Bardziej szczegółowoTabela wewnętrzna - definicja
ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy
Bardziej szczegółowoOperatory na rzecz typu TString
Operatory na rzecz typu TString Dopiszmy w definicji klasy operator[], dzięki któremu potraktujemy obiekt jak tablicę class TString { public: char& operator[]( size_t n ); const char& operator[]( size_t
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Standard Template Library. Część 1. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.
Bardziej szczegółowoWstęp do programowania obiektowego. STL - Standard Template Library
Wstęp do programowania obiektowego STL - Standard Template Library 1 STL z ang. Standard Template Library, (pol. standardowa biblioteka szablonów) biblioteka C++ zawierająca pojemniki, iteratory, algorytmy,
Bardziej szczegółowoProgramowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35
Programowanie w C++ Wykład 3 Katarzyna Grzelak 12 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35 Zakres ważności obiektów
Bardziej szczegółowoStos LIFO Last In First Out
Stos LIFO Last In First Out Operacje: push - dodanie elementu na stos pop - usunięcie elementu ze stosu empty - sprawdzenie, czy stos jest pusty size - zwrócenie liczby elementów na stosie value (peek)
Bardziej szczegółowoProgramowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32
Programowanie w C++ Wykład 12 Katarzyna Grzelak 20 maja 2019 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoSzablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Bardziej szczegółowoSTL: kontenery. STL: kontenery. STL: kontenery. Typy kontenerów STL. STL: kontenery. STL: kontenery. multimap. Kontener map: przykład zadanie:
Kontener map: przykład zadanie: Jak policzyć liczby różnych słów występujących w tekście? Rozwiązanie: Potrzebny jest kontener, który będzie zawierał listę różnych słów (tj. listę bez powtórzeń), która
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 05 1 / 15 Plan wykładu 1 Biblioteka
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 5
Programowanie komputerowe Zajęcia 5 Tablice wielowymiarowe Tablicę dwuwymiarową możemy deklarować statycznie: typ nazwa[rozmiar1][rozmiar2]; Ma ona elementy nazwa[i][j] dla i=0,,rozmiar1-1, j=0,...,rozmiar2-1.
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoProgramowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24
Programowanie w C++ Wykład 11 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24 Strumienie Strumień bajtów płynacy od źródła do ujścia: 1 standardowe strumienie wejściowe
Bardziej szczegółowoSTL: kontenery. STL: kontenery. STL: kontenery. STL: kontenery. STL: kontenery. STL: kontenery
Kontenery sekwencyjne: list (lista dwukierunkowa) jest przystosowany do szybkiego wstawiania elementów w dowolne miejsce sekwencji, nie nadaje się do efektywnej realizacji operacji swobodnego dostępu,
Bardziej szczegółowoWykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie
Bardziej szczegółowoWzorce funkcji (szablony)
Wzorce funkcji (szablony) Wzorce funkcji (ang. function template) dają możliwość wielokrotnego wykorzystywania tego samego kodu funkcji dla różnych typów danych. Załóżmy, że chcemy zdefiniować funkcję
Bardziej szczegółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Bardziej szczegółowoKrótkie wprowadzenie do STL. XIV LO im. S. Staszica, K06 D
Krótkie wprowadzenie do STL XIV LO im. S. Staszica, K06 D Arkadiusz Betkier Wojciech Sirko 30 marca 2010 Spis treści 1 Wstęp 2 2 Podstawowe struktury danych 4 2.1 pair................................ 4
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Bardziej szczegółowoIMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Bardziej szczegółowoWykład 4. Klasa List Kolejki Stosy Słowniki
Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie a dziedziczenie class Integer2: public Integer Operatory, z wyjątkiem operatora przypisania są automatycznie dziedziczone w klasach pochodnych. Integer2(int i): Integer(i) Automatyczne tworzenie
Bardziej szczegółowoWykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Bardziej szczegółowoWydajność użycia funktorów z biblioteką STL języka C++
Wydajność użycia funktorów z biblioteką STL języka C++ Irek Szcześniak, Maciek Sobczak 1 października 2005 roku Streszczenie Artykuł dotyczy wydajności użycia funktorów z biblioteką STL (Standard Template
Bardziej szczegółowoKolekcje. Na podstawie:
Kolekcje Na podstawie: http://wazniak.mimuw.edu.pl Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz
Bardziej szczegółowoStruktury danych: stos, kolejka, lista, drzewo
Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja
Bardziej szczegółowoProgramowanie w języku Java. Kolekcje
Programowanie w języku Java Kolekcje Definicja Kolekcja to obiekt, który grupuje elementy danych (inne obiekty) i pozwala traktować je jak jeden zestaw danych, umożliwiając jednocześnie wykonywanie na
Bardziej szczegółowoSzablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoWykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
Bardziej szczegółowoKolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Definicja kolekcji
Bardziej szczegółowoProgramowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28
Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera
Bardziej szczegółowoWykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
Bardziej szczegółowoDefinicja szablonu klasy. Korzystanie z szablonu. Specjalizacja metody szablonu.
class Wektor private: Typ x; Typ y; Wektor(Typ a, Typ b) :x(a), y(b) ; Wektor A(2, 5); Wektor B(2.7, 9.7); Wektor C('A', 'B'); 1 Definicja szablonu klasy. Korzystanie z szablonu. class
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Bardziej szczegółowoWSTĘP DO INFORMATYKI. Struktury liniowe
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Struktury liniowe www.agh.edu.pl STRUKTURY LINIOWE SEKWENCJE Struktury
Bardziej szczegółowoProgramowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 6 Witold Dyrka witold.dyrka@pwr.wroc.pl 12/11/2012 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o slajdy
Bardziej szczegółowoJava Collections Framework
Java Collections Framework Co to jest Java Collections Framework JCF Zunifikowana architektura do reprezentacji i manipulacji kolekcjami danych. Składa się z: Interfejsów Definuje abstrakcyjne typy możliwych
Bardziej szczegółowoOpisy efektów kształcenia dla modułu
Karta modułu - Metodyki i techniki programowania 1 / 5 Nazwa modułu: Metodyki i techniki programowania Rocznik: 2012/2013 Kod: RIA-1-103-s Punkty ECTS: 7 Wydział: Inżynierii Mechanicznej i Robotyki Poziom
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 9 - powtórzenie. 11 maja 2007 Powtórzenie materiału obiekty automatyczne, statyczne, tymczasowe, dynamiczne dziedziczenie, agregacja polimorfizm, funkcje wirtualne wzorce projektowe (strukturalne,
Bardziej szczegółowo