( rednio) zaawansowane programowanie w C++ (ZPR)
|
|
- Henryka Górska
- 8 lat temu
- Przeglądów:
Transkrypt
1 ( rednio) zaawansowane programowanie w C++ (ZPR) Wykªad 11 - STL, bind Robert Nowak 2016Z ( rednio) zaawansowane programowanie w C++ (ZPR) 1/35
2 Programowanie generyczne - powtórzenie wspóªdzielenie kodu ¹ródªowego (, ) brak narzutów w czasie wykonania problemy: trudne w implementacji rozrost kodu wykonywalnego nieczytelne komunikaty o bª dach ( rednio) zaawansowane programowanie w C++ (ZPR) 2/35
3 Biblioteka STL (standardowa w C++ od 1997) Skªad: iteratory funktory (ob. funkcyjne) adaptery alokatory Cechy: wykorzystuje mechanizm szablonów kod wielokrotnego u»ycia mo»na stosowa do typów wbudowanych wykorzystuje wzorzec iteratora (zmniejsza liczb algorytmów) bezpieczna w aplikacjach wielow tkowych bardzo efektywna ( rednio) zaawansowane programowanie w C++ (ZPR) 3/35
4 Lista kolekcji standardowych basic_string vector list deque set map multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap sekwencyjne jednowymiarowa tablica jednowymiarowa tablica lista dwukierunkowa kolejka o dwu ko«cach asocjacyjne zbiór tablica asocjacyjna (sªownik) warto± mo»e wyst powa wielokrotnie klucz mo»e wyst powa wielokrotnie haszuj ce zbiór sªownik wielozbiór wielosªownik ( rednio) zaawansowane programowanie w C++ (ZPR) 4/35
5 Kontenery adaptery queue<t> kolejka priority_queue<t> kolejka priorytetowa stack<t> stos Inny podziaª: bazuj ce na tablicach: vector, string, deque bazuj ce na w zªach: list, set, map, multiset, multimap, unorderd_set, unorderd_map, unorderd_multiset, unorderd_multimap ( rednio) zaawansowane programowanie w C++ (ZPR) 5/35
6 Kopiowanie w bibliotece STL Biblioteka operuje na kopiach (kontener przechowuje kopie elementów) Obiekty przechowywane w kontenerach: powinny mie publiczny konstruktor kopiuj cy powinny mie publiczny operator przypisania Problemy: obiekty bazowe dla hierarchii klas (wycinanie) auto_ptr(t) (nietypowe kopiowanie) Gdy kopiowanie kosztowne: kontener wska¹ników na obiekty kontener sprytnych wska¹ników ze zliczaniem (shared_ptr) ( rednio) zaawansowane programowanie w C++ (ZPR) 6/35
7 std::vector Nagªówek: <vector> //Deklaracja template<class T, class A=allocator<T> > class std::vector; //Najwa»niejsze metody dost pu reference operator[](size_type n); reference at(size_type n) front() back() //Modyfikacja kolekcji void push_back(const&t); T pop_back(); //Wa»ne funkcje pomocnicze bool operator== bool operator< //Specjalizacje vector<bool> vector size capacity ptr 5 10 ( rednio) zaawansowane programowanie w C++ (ZPR) 7/35
8 std::list Nagªówek: <list> //Deklaracja template<class T, class A=allocator<T> > class std::list; //Metody dost pu - brak operatora[] front() back() //Modyfikacja kolekcji push_front(), push_back() pop_front(), pop_back() list head tail //Modyfikacja kolekcji insert erase //Inne metody void remove(const T& val) void reverse() splice merge sort ( rednio) zaawansowane programowanie w C++ (ZPR) 8/35
9 std::deque - kolejka o dwu ko«cach Nagªówek <deque> deque start end empty empty empty Operacje: takie jak dla wektora (za wyj tkiem capacity(), reserve() ) operacje z przodu ci gu (tak jak dla listy) ( rednio) zaawansowane programowanie w C++ (ZPR) 9/35
10 asocjacyjne ale: przechowuj elementy uporz dkowane dostarczaj metod wyszukiwania w czasie logarytmicznym Alternatywa: posortowany wektor porz dek elementów inny ni» kolejno± wstawiania iterator typu bidirectional, cz sto wymagaj random_access ( rednio) zaawansowane programowanie w C++ (ZPR) 10/35
11 set - zbiór eliminacja elementów równowa»nych a jest równowa»ne b, je»eli!(a < b) &&!(b < a) set<int> s; //zbiór liczb caªkowitych s.insert(1); //dodaje elementy do kolekcji s.insert(1); //ta operacja jest pusta (usuwa elementy równowa»ne) s.insert(2); assert( s.size() == 2); //bada liczb elementów assert( s.count(1) == 1 ); //zlicza liczb wyst pie«elementu ( rednio) zaawansowane programowanie w C++ (ZPR) 11/35
12 map - sªownik (tablica asocjacyjna) template<class K, class T, //typ klucza i warto±ci class Cmp = less<key>, //Porz dek dla klucza class A = allocator<pair<const K, T> > > class std::map; map key value iterator find(const K& k); size_type count(const K& k) const; pair<iter,iter> equal_range(const K& k); ( rednio) zaawansowane programowanie w C++ (ZPR) 12/35
13 boost::unordered_set lub std::unordered_set (C++11) nie zostaªy obj te standardem w 1999 roku dostawcy kompilatorów (wªasne rozwi zania): hash_set, hash_map, itd. standard C++11: unordered_set itd. wykorzystuj funkcj skrótu w przybli»eniu jednostkowy czas dost pu do elementów cena: zaj to± pami ci (dziaªa dobrze gdy wypeªniony w ok. 25%) ( rednio) zaawansowane programowanie w C++ (ZPR) 13/35
14 boost::array <boost/array.hpp> lub std::array (C++11) Adapter dla tablic z C dostarcza iteratorów oraz metod begin, end, rbegin, rend dostarcza metody: at, front, back i in. dostarcza operator==, operator< template<typename T, std::size_t N> class array { public: //... T elems[n]; }; //Przykªady u»ycia array<double, 4> tab = { 1.0, 1.1, 1.2, 1.3 }; array<double, 4> tab2(tab); cassert( tab == tab2 ); tab2.assign(0.0); //wszystkie elementy b d miaªy warto± 0 ( rednio) zaawansowane programowanie w C++ (ZPR) 14/35
15 Porównanie kolekcji - wydajno± indeksowanie insert, erase pocz tek koniec array O(1) vector O(1) O(n)+ - O(1)+ list - O(1) O(1) O(1) deque O(1) O(n) O(1) O(1) set,map O(log(n)) O(log(n)) - - unordered O(1)+ O(1)+ - - array - tablica odziedziczona po 'C' wektor - dost p przez indeks, rezerwowanie pami ci lista - optymalne wstawianie i usuwanie elementów deque - optymalne operacje na ko«cach, indeksowanie ( rednio) zaawansowane programowanie w C++ (ZPR) 15/35
16 Porównanie kolekcji cecha element w ustalonej pozycji kontenera dost p przez indeks wa»na szybko± wyszukiwania iteratory, wska¹niki nie mog by uniewa»niane j.w. dla operacji modykuj cej koniec kolekcji brak elementów równowa»nych nieistotny porz dek w jakim elementy s przechowywane kontener vector, string, list, deque vector, string, deque posortowane wektory, asocjacyjne, haszuj ce lista, asocjacyjne j.w. oraz deque set, map haszuj ce ( rednio) zaawansowane programowanie w C++ (ZPR) 16/35
17 STL i wielow tkowo± bezpiecznie czytanie bezpieczne pisanie do ró»nych kontenerów wiele w tków mo»e równocze±nie czyta z kontenera ró»ne w tki mog równocze±nie pisa do ró»nych kontenerów //Uwaga: string cz sto implementowany jako proxy-on-write void f(string s) { s += 'a';//modyfikacja napisu } rozwa»y zast pienie string przez vector<char> dla bardzo starych wersji biblioteki standardowej ( rednio) zaawansowane programowanie w C++ (ZPR) 17/35
18 niemodykuj ce for_each nd nd_if adjacent_nd nd_rst_of count count_if mismatch equal search search_n nd_end modykuj ce copy copy_n copy_backward swap iter_swap swap_ranges transform replace replace_if replace_copy replace_copy_if ll ll_n generate generate_n remove remove_if remove_copy... sortuj ce, zbiorowe, sterta, i in. ( rednio) zaawansowane programowanie w C++ (ZPR) 18/35
19 zakres, reverse-iterator iterator begin(); iterator do pierwszego elementu iterator end(); iter. do pierwszego za ostatnim reverse_iterator rbegin(); iteratory dla odwrotnej kolejno±ci reverse_iterator rend(); begin end A B C D rbegin rend D C B A ( rednio) zaawansowane programowanie w C++ (ZPR) 19/35
20 wykorzystanie algorytmów int TAB[] = { 3, 2, 0, 9, 1 }; vector<int> v(tab, TAB + sizeof(tab)/sizeof(tab[0]) ); //Jawna p tla for(int i : v) { cout << i << ' '; } for(vector<int>::const_iterator ii = v.begin(); ii!= v.end(); ++ii ) { cout << *ii << ' '; } //Pomocniczy funktor struct PrintFunctor : public std::unary_function<x,void> { void operator()(int x) { cout << x << ' '; } }; //Algorytm: zwarty kod, nie wywoªuje wielokrotnie v.end() for_each( v.begin(), v.end(), PrintFunctor() ); //Inny algorytm copy( v.begin(), v.end(), ostream_iterator<int>(cout," ") ); ( rednio) zaawansowane programowanie w C++ (ZPR) 20/35
21 wyszukiwanie Maj c zakres: elementy nieposortowane count int czy istnieje element i ile kopii nd iterator czy istnieje element i gdzie si znajduje elementy posortowane binary_search bool czy istnieje element lower_bound iterator upper_bound iterator equal_range para iteratorów Maj c kontener: sekwencyjny: tak jak zakres (begin, end) asocjacyjny: wykorzysta metody kontenera ( rednio) zaawansowane programowanie w C++ (ZPR) 21/35
22 usuwanie (remove nie usuwa elementów) Iter remove(iter rst, Iter last, const T& val) //Przykªad usuwania elementów vector<int> v; v.erase( remove(v.begin(), v.end(), 3), v.end() ); remove niebezpieczne dla kontenerów zawieraj cych wska¹niki ( rednio) zaawansowane programowanie w C++ (ZPR) 22/35
23 sortowanie partition dzieli elementy u»ywaj c predykatu stable_partiton j.w. nth_element znajduje pozycj danego elementu partial_sort sortuje cz ±ciowo sort stable_sort sortuje sortuje, dla elementów równowa»nych zachowany porz dek ( rednio) zaawansowane programowanie w C++ (ZPR) 23/35
24 std::min, std::max z <algorithm> //wykorzystuje operator< template <class T> const T& min ( const T& a, const T& b ) { return!(b<a)?a:b; } //wªasny operator porównania template <class T, class Compare> const T& min ( const T& a, const T& b, Compare comp ) { return!comp(b,a)?a:b; } cout << min(2,1) << endl; //drukuje 1 //Ze wzgl du na to,»e windows.h definiuje makrodefinicje min i max //czasami nale»y u»y dodatkowej pary nawiasów cout << (std::min)(2,1) << endl; //dziaªa poprawnie na Windows //mo»na te» zdefiniowa makrodefinicj #define NOMINMAX //mo»na u»ywa szablonów _cpp_min _cpp_max ( rednio) zaawansowane programowanie w C++ (ZPR) 24/35
25 Boost Algorithm Minmax #include <boost/algorithm/minmax.hpp> #include <boost/algorithm/minmax_element.hpp> //znajduje minimalny element w kolekcji, zªo»ono± liniowa template <class It> It std::min_element(it first, It last); //znajduje maksymalny element w kolekcji, zªo»ono± liniowa template <class It> It std::max_element(it first, It last); template <class It> //zªo»ono± 3n/2 std::pair<it,it> boost::minmax_element(it first, It last); const int TAB[] = {3,7,2,5,6,4,9}; const int SIZE = sizeof(tab)/sizeof(tab[0]); cout << "min:" << *min_element(tab, TAB + SIZE) << endl; //zwraca uporz dkowan par template <class T> tuple<t const&, T const&> boost::minmax(const T& a, const T& b); ( rednio) zaawansowane programowanie w C++ (ZPR) 25/35
26 bind bind ( rednio) zaawansowane programowanie w C++ (ZPR) 26/35
27 bind std::bind lub boost::bind <boost/bind.hpp> <functional> zast puje: - ptr_fun - mem_fun - mem_fun1 - mem_fun_ref - mem_fun1_ref - bind1st - bind2nd - compose - compose2 //definiuje _1, _2, _3, itp using namespace std::placeholders; void f(int i, int j); //Przykªad - nowy obiekt funkcyjny void f2(int j) { return f(5,j) } bind1st(ptr_fun(f),5); //wykorzystuje STL std::bind(f, 5, _1);//to samo boost::bind(f, 5, _1);//wykorzystuje bind //Przykªad - funkcja z 4 argumentami void arg4(int i1, int i2, int i3, int i4) { cout << i1 << i2 << i3 << i4; } int i1=1, i2=2, i3=3, i4=4; //Tworzy obiekt funkcyjny i wykonuje go (bind( &arg4, _4, _2, _3, _1 )) (i1, i2, i3, i4); //Wykorzystuje tylko i3 (bind( &arg4, _3, _3, _3, _3 )) (i1, i2, i3, i4); ( rednio) zaawansowane programowanie w C++ (ZPR) 27/35
28 bind bind - przykªady class Foo { public: void print(); /*... */ }; void printfun(const Foo& f) { f.print(); } std::vector<foo> v; for_each(v.begin(), v.end(), printfun ); //Wykorzystuje funkcj for_each(v.begin(), v.end(), mem_fun_ref(&foo::print) ); for_each(v.begin(), v.end(), bind(&foo::print,_1) ); std::vector<foo*> v2; for_each(v2.begin(), v2.end(), mem_fun(&foo::print) ); for_each(v2.begin(), v2.end(), bind(&foo::print,_1) ); std::vector<shared_ptr<foo> > v3; for_each(v3.begin(), v3.end(), bind(&foo::print,_1) ); ( rednio) zaawansowane programowanie w C++ (ZPR) 28/35
29 bind std::ref (boost::ref) nagªówek <functional> lub <boost/ref.hpp> std::ref(x) obiekt zawieraj cy referencj do X, mo»liwo± kopiowania, itp. std::cref(x) obiekt zaw. staª referencj do X //Przykªady vector<int> v; struct X { void f(int i); }; X x; //Dziaªania wykonuje na kopii x for_each( v.begin(), v.end(), bind( &X::f, x, _1 ) ); //Dziaªania wykonuje na obiekcie x for_each( v.begin(), v.end(), bind( &X::f, ref(x), _1 ) ); ( rednio) zaawansowane programowanie w C++ (ZPR) 29/35
30 bind bind - przykªady (2) struct Point { //Klasa u»ywana w przykªadach Point(int x, int y) : x_(x), y_(y) {} int x_; int y_; void move(int dx, int dy) { x_ += dx; y_ += dy; } }; vector<int> vi; //tutaj pomini to dodawanie warto±ci do wektora Point p(0,0); //Przykªad wykorzystania algorytmu struct Fun1 { //Obiekt funkcyjny wykorzystywany w algorytmie Point& p_; Fun1(Point& p) : p_(p) {} void operator()(int i) { p_.move(i, i); } } fun1(p); for_each(vi.begin(), vi.end(), fun1 ); //To samo bez konieczno±ci tworzenia Fun1 for_each(vi.begin(), vi.end(), bind(&point::move, ref(p), _1, _1 ) ); ( rednio) zaawansowane programowanie w C++ (ZPR) 30/35
31 bind bind - przykªady (3) class Foo { { public: void add(double d); //wykorzystuje bind void addcollection(const std::vector<double>& v) { for_each( v.begin(), v.end(), bind(&foo::add, this, _1 ) ); } //... }; //inny sposób dostarczenia operacji dla kolekcji void addcollection(const std::vector<double>& v, Foo& foo) { for_each( v.begin(), v.end(), bind(&foo::add, ref(foo), _1 ); } ( rednio) zaawansowane programowanie w C++ (ZPR) 31/35
32 bind bind - kompozycja bind( f, bind(g, _1))(x) //f (g(x)) zast puje std::compose1 oraz std::compose2 int f(int x); //funkcja wykorzystywana w przykªadach vector<int> v; //znajduje element mniejszy ni» 5 find_if( v.begin(), v.end(), bind( std::less<int>(), _1, 5 ) ); //zwraca iterator do elementu x, dla którego x < f(x) find_if( v.begin(), v.end(), bind( std::less<int>(), _1, bind(f, _1))); ( rednio) zaawansowane programowanie w C++ (ZPR) 32/35
33 bind Przeci»anie operatorów oper obiekt funkcyjny STL! std::logical_not == std::equal_to!= std::not_equal_to < std::less <= std::less_equal > std::greater >= std::greater_equal //Przykªad struct Prac { string nazw; int wiek; int pensja; }; vector<prac> p; //Sortuje po wieku sort( p.begin(), p.end(), bind( less<int>(), bind(&prac::wiek,_1), //wi zanie skªadowej bind(&prac::wiek,_2)) ); //Sortowanie po pensji sort(p.begin(), p.end(), bind(&prac::pensja,_1) < bind(&prac::pensja,_2)); ( rednio) zaawansowane programowanie w C++ (ZPR) 33/35
34 bind bind - podsumowanie tworzy max 9 argumentów wi zanie dla funkcji metod dla obiektu metod dla wska¹nika do obiektu metod dla sprytnego wska¹nika do obiektu kompozycja operatory zast puj niektóre obiekty funkcyjne z STL ( rednio) zaawansowane programowanie w C++ (ZPR) 34/35
35 bind Dzi kuj ( rednio) zaawansowane programowanie w C++ (ZPR) 35/35
Zaawansowane 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
Wykł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
Programowanie 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
Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 7 Katarzyna Grzelak 23 kwietnia 2018 K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40 Standard Template Library (STL) K.Grzelak (Wykład 7) Programowanie w C++ 2 / 40 C++ Templates
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
Algorytmy 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.
STL: 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.
2. 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
STL: 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
Kontenery 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ż.
Programowanie obiektowe w C++ Wykład 11
Programowanie obiektowe w C++ Wykład 11 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) Programowanie obiektowe w C++ 1 / 34 STL - rys historyczny utworzona została w 1994 r.
Pojemniki 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
STL 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
Zaawansowane 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
STL: 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
Paradygmaty 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................................
Algorytmy w C++ dla opornych!
Algorytmy w C++ dla opornych! 02.10.2011 Opracował: Krzysztof Rudlicki W-ce przewodniczący SKN TeamBit krudlicki@future-processing.com O czym będę przynudzał: O - Dlaczego będę przynudzał? O - Vector A
Biblioteka 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,
Programowanie 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
Wstę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,
Zaawansowane 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
Definicja 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
Ję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
Kontenery. Wykład 12. Programowanie (język C++) Rodzaje kontenerów. Przegląd kontenerów
Programowanie (język C) Kontenery Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Rodzaje kontenerów Kontenery sekwencyjne kolekcje uporządkowane, w których kaŝdy element
Ćwiczenia IV - Kontenery (pojemniki)
Ćwiczenia IV - Kontenery (pojemniki) 28 października 2010 Kontener Kontener jest to obiekt który zawiera w sobie obiekty innej klasy i ma zdefiniowane metody nimi zarządzające. Jednym z najprostszych przykładów
obiekty funkcyjne - funktory
#include #include #include #include #include #include #include #include #include #include using namespace
Kurs 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
Kurs 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
Technologie 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ę
1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
STL 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
STL: 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,
Kontenery, algorytmy
Kontenery, algorytmy Zaawansowane biblioteki programistyczne Sebastian Deorowicz Politechnika Śląska 2008 10 23 Sebastian Deorowicz (PŚl) Kontenery, algorytmy 2008 10 23 1 / 84 Plan wykładu 1 Kontenery
Programowanie i struktury danych 1 / 44
Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 5 Jan Kazimirski 1 Programowanie GPU 2/2 2 Thrust Język CUDA C bazuje na języku C języku o dosyć niskim poziomie abstrakcji ( macro assembler) Implementowanie
W 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
Kompletna 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
Paradygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2014 2 Spis treści 1. Zadanie 4 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do
STL: implementowanie algorytmów C++: STL. STL: implementowanie algorytmów. STL: implementowanie algorytmów. STL: implementowanie algorytmów
Algorytm przeszukiwania w głąb Przeszukiwanie grafu odwiedzenie wszystkich jego wierzchołków w kolejności jak na rysunku obok: C++: STL Implementowanie własnych algorytmów Reprezentacja grafu w programie
STL: kontenery C++: STL: kontenery. STL: kontenery. STL: kontenery. STL: kontenery. Fabryka obiektów. Fabryka obiektów
Fabryka obiektów C++: Fabryka obiektów Klasa, której obiekty pośrednicza przy tworzeniu innych obiektów. Pomagają tworzyć obiekty, jeżeli informacja o typie odnosi się do konkretnego typu, znanego w momencie
Ję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
STL: algorytmy sortujące. STL: algorytmy sortujące. STL: algorytmy sortujące. STL: algorytmy sortujące. STL: algorytmy sortujące
1. partition 2. stable_partition 3. sort 4. stable_sort 5. partial_sort 6. partial_sort_copy 7. nth_element 8. lower_bound 9. upper_bound 10.equal_range 11.binary_search 12.merge 13.inplace_merge 14.includes
Lab. 02: Algorytm Schrage
Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z
Szablon 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
Algorytmy, iteratory, kolekcje niestandardowe
Algorytmy, iteratory, kolekcje niestandardowe Biblioteka STL Sebastian Deorowicz Politechnika Śląska 2006 11 06 Sebastian Deorowicz (PŚl) Algorytmy, iteratory, kolekcje niestandardowe 2006 11 06 1 / 83
Operatory 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
Programowanie 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
Dla 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
STL Standard Template Library
ź ź STL Standard Template Library STL jest bibliotek kontenerów, algorytmów, iteratorów i wielu innych powszechnie u ywanych udogodnie programistycznych. STL jest wbudowany w standard j zyka C++, umo liwia
Dariusz 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)
Programowanie 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
Paradygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Wydajność 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
Ję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,
1 Stos: Stack i Stack<T>
1 Stos: Stack i Stack Przykªady z»ycia: Stos talerzy (aby wyci gn co± ze ±rodka, musimy wyci gn te z góry) Meble ªadowane do naczepy ci»arówki Osoby wsiadaj ce do samolotu i wysiadaj ce z niego. Piramida
Techniki 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
C++: 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
C++: 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
Szablon klasy std::list
Szablon klasy std::list 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
STL: algorytmy sortujące. STL: algorytmy sortujące. STL: algorytmy sortujące. STL: algorytmy sortujące. STL: algorytmy sortujące
1. partition 2. stable_partition 3. sort 4. stable_sort 5. partial_sort 6. partial_sort_copy 7. nth_element 8. lower_bound 9. upper_bound 10.equal_range 11.binary_search 12.merge 13.inplace_merge 14.includes
Zaawansowane 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,
Techniki 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
Algorytmy i Struktury Danych. Anna Paszyńska
Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;
Jak 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ę
Programowanie 2. Język C++. Wykład 2.
2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...
IMIĘ 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
Szablony 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
Szablony 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
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 wykładu na temat programowania obiektowego.
Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.
Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Poni»sze zadania s wyborem zada«z kolokwiów ze Wst pu do Informatyki jakie przeprowadziªem w ci gu ostatnich lat. Marek Zawadowski Zadanie 1 Napisz
10.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
Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
Spis treści. Wprowadzenie 15
Spis treści Wprowadzenie 15 1. Mechanizmy języka C++ 19 1.1. Struktura programu jednostki translacji.................. 21 1.1.1. Składnia tekstu źródłowego...................... 22 1.1.2. Preprocesor...
Wprowadzenie 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
Kró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
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.
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
Programowanie 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:
Listy i operacje pytania
Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik
STL: implementowanie algorytmów. STL: implementowanie algorytmów. STL: implementowanie algorytmów. STL: implementowanie algorytmów
Algorytm przeszukiwania wszerz Przeszukiwanie grafu odwiedzenie wszystkich jego wierzchołków w kolejności jak na rysunku obok: Reprezentacja grafu w programie Wierzchołki są identyfikowane przez liczby
Programowanie 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:
Kolekcje obiektów. Wyj tki.
Kolekcje obiektów. Wyj tki. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 30.03.2017 Kolekcje obiektów Kolekcje obiektów (Java Collections) sªu»
PROGRAMOWANIE GENERYCZNE W JĘZYKU C++
PROGRAMOWANIE GENERYCZNE W JĘZYKU C++ Krzysztof Rogala Instytu Automatyki i Informatyki Stosowanej Wydział Elektroniki i Technik Informacyjnych Politechniki Warszawskiej CZYM JEST PROGRAMOWANIE GENERYCZNE?
Biblioteka 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
Programowanie 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.
Wykł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
Stos 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)
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu
Wykorzystanie 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
Programowanie i struktury danych. Wykład 4 Dr Piotr Cybula
Programowanie i struktury danych Wykład 4 Dr Piotr ybula Typ wska ź nikowy int* pointer; //wskaźnik do zmiennych typu int pozwala na dostęp do dowolnego miejsca pamięci (zmienne
Listy i funkcje zaprzyjaźnione w C++
Listy i funkcje zaprzyjaźnione w C++ Na ostatnich zajęciach zajmowaliśmy się obsługą gniazdek w systemie Windows. Zajęcia te były w całości realizowane w aplikacji konsolowej. Takie podejście znaczenie
Programowanie i struktury danych
Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w
Java 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
PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Kolekcje - 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
Zaawansowane programowanie w C++ (PCP)
Wykład 7 - sprytne wskaźniki. 20 kwietnia 2007 Potrzeba współdzielenia kodu źródłowego Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania największego elementu) Szablony mechanizm
Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ
programowanie w C++ dla OWK Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ 1 Streszczenie W tym rozdziale podamy kilka najprostszych
Wartości domyślne, szablony funkcji i 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 2012 Bogdan Kreczmer Niniejszy dokument
( rednio)zaawansowane programowanie w C++
( rednio)zaawansowane programowanie w C++ Wykªad 2 - staªo±, wzorce projektowe Robert Nowak 2017L ( rednio)zaawansowane programowanie w C++ 1/28 Plan wykªadu podstawowe poj cia w C++ (powtórzenie) staªo±
Szablony 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
Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )
Jzyk C++ cz 3 Jarosław Gramacki Instytut Informatyki i Elektroniki # $$%%& ' ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )!" 2 # $$%%& ' ( $%%/,))3 ( %* 2 / 4 ( ( *' *''*,