( rednio) zaawansowane programowanie w C++ (ZPR)
|
|
- Henryka Górska
- 7 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
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ół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ółowoProgramowanie 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
Bardziej szczegółowoProgramowanie 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ół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ół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ół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ół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ół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ółowoProgramowanie 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.
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ół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ół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ół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ół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ółowoAlgorytmy 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
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ół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ół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ół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ół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ół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ółowoKontenery. 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
Bardziej szczegółowoĆ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
Bardziej szczegółowoobiekty funkcyjne - funktory
#include #include #include #include #include #include #include #include #include #include using namespace
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ół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ół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ółowo1 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
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ół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ółowoKontenery, 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoProgramowanie 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
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ół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ółowoParadygmaty 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
Bardziej szczegółowoSTL: 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
Bardziej szczegółowoSTL: 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
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: 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
Bardziej szczegółowoLab. 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
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ółowoAlgorytmy, 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
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ół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ół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
ź ź 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
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ół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ółowoParadygmaty 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..............................
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ół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ółowo1 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
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ół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ół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ółowoSzablon 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
Bardziej szczegółowoSTL: 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
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ół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ółowoAlgorytmy 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;
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 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...
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ół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ół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ół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ółowoZadania 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
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ółowoRealizacja 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
Bardziej szczegółowoSpis 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...
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ół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ół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ół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ółowoListy 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
Bardziej szczegółowoSTL: 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
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ółowoKolekcje 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»
Bardziej szczegółowoPROGRAMOWANIE 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?
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ół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ół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ół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 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
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 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
Bardziej szczegółowoListy 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
Bardziej szczegółowoProgramowanie 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
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ółowoPROE 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
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ółowoZaawansowane 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoWartoś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
Bardziej szczegółowo( 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±
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ółowoJzyk 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 ( ( *' *''*,
Bardziej szczegółowo