33
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 www.kapitalludzki.p.lodz.pl 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 bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnychPrezentacja dystrybuowana jest bezpłatnie 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 bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnychPrezentacja dystrybuowana jest bezpłatnie

Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

  • Upload
    vutu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83www.kapitalludzki.p.lodz.pl

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 bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej -

zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych”

Prezentacja dystrybuowana jest bezpłatnie

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 bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej -

zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych”

Prezentacja dystrybuowana jest bezpłatnie

Page 2: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

2Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Biblioteka standardowaBiblioteka standardowa

• Po co definiować i standaryzować bibliotekę języka programowania?

• Składniki biblioteki standardowej języka C++:– Łańcuch znaków

– Realizacja funkcji wejścia-wyjścia

– Kontenery (struktury danych)

– Algorytmy

– Wspomaganie operacji numerycznych

– Wsparcie dla międzynarodowych wersji programów

Page 3: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

3Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Przestrzeń nazw stdPrzestrzeń nazw std

• Biblioteka standardowa języka C++ została zdefiniowana w przestrzeni nazw std

std::cout << "hello" << std::endl;

using std::cout;

using std::endl;

cout << "hello" << endl;

using namespace std;

cout << "hello" << endl;

Page 4: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

4Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Pliki nagłówkowePliki nagłówkowe

• Biblioteka standardowa języka C w bibliotece języka C++ (wybrane pliki):

#include<cstdlib>

#include<cstdio>

#include<cstring>

#include<ctime>

• Biblioteka standardowa języka C++ (wybrane pliki):

#include<string>

#include<new>

#include<vector>

#include<complex>

Page 5: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

5Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Ciągi znaków - napisyCiągi znaków - napisy

• Ciągi znaków języka C:

#include<string.h>

char str[100];

strncpy( str, "hello", 100 );

• Ciągi znaków języka C++:

#include<string>

std::string str;

str = "hello";

Page 6: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

6Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Ciąg znaków języka CCiąg znaków języka C

#include<string.h>

char str[100];

strncpy( str, "hello", 100 );

H E L LH O \0 ? ?

0 99

strlen( str );

sizeof( str ) / sizeof( str[0] )

memcpy, strcpy, strlen

Page 7: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

7Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Ciąg znaków języka C++Ciąg znaków języka C++

• Klasa std::string

• Podstawowe metody klasy std::string– empty()

– size(), length()

– at(), operator[]

– clear(), erase()

– find()

– swap()

– substr()

– append()

– c_str()

Page 8: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

8Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Klasa std::string a ciągi znaków języka C

Klasa std::string: Ciągi znaków języka C:

strcpy( a, b ) a = b

strcmp( a, b ) a == b

strcat( a, b ) a += b

strlen( a ) a.size()

strstr( a, b ) a.find( b )

Page 9: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

9Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Klasy wejścia-wyjścia języka C++

• Nagłówek iostream– Nagłówki istream, ostrem

– Obiekty: cout, cin, cerr, clog

• Nagłówek fstream– Nagłówki ifstream, ofstream

Page 10: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

10Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Omówienie biblioteki standardowejOmówienie biblioteki standardowej

• C++ Reference:– http://www.cplusplus.com/reference/

– http://www.cppreference.com/wiki/

– http://gcc.gnu.org/onlinedocs/libstdc++/

– http://en.wikipedia.org/wiki/C%2B%2B_standard_library

– http://www.parashift.com/c++-faq-lite/containers.html

– http://www.parashift.com/c++-faq-lite/class-libraries.html

Page 11: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

11Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Porównanie podstawowych kontenerówPorównanie podstawowych kontenerów

• Wektor (std::vector)– Model tablicy dynamicznej

– Swobodny dostęp do elementów

– Kolejka typu LIFO

• Kolejka o dwóch końcach (std::deque)– Model tablicy dynamicznej „otwartej” z obydwu końców

– Kolejka typu FIFO

• Lista (std::list)– Model listy dwukierunkowej

– Wstawianie i usuwanie elementów jest szybkie i stałe w czasie

– Brak swobodnego dostępu do elementów – konieczna iteracja

Page 12: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

12Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

• Wektor najczęściej implementowany jest jako tablica dynaczmina:

• Oczekuje się, że będzie spełnione wyrażenie:&v[ i ] == &v[ 0 ] + i

• Plusy/minusy?

Wektor – model pamięciWektor – model pamięci

Page 13: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

13Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

• Implementowana zazwyczaj jako grupa pojedynczych bloków

• Plusy/minusy?

Kolejka – model pamięciKolejka – model pamięci

Page 14: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

14Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

• Plusy/minusy?

Lista – model pamięciLista – model pamięci

Page 15: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

15Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Iteratory

• W bibliotece standardowej C++ iterator jest:– „Inteligentnym” wskaźnikiem

• Implementuje operację de-referencji (*)

• Implementuje operację inkrementacji (++)

– Pozwala na dostęp do elementów danego kontenera bez znajomości jego budowy

– Iterator jest obiektem, który wskazuje na inny obiekt

• Kontenery implementują:– Metody: begin(), end(), rbegin(), rend()

– Obiekty: iterator, reverse_iterator, const_iterator, const_reverse_terator

Page 16: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

16Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Testowane operacjeTestowane operacje

• Utworzenia kontenera i wypełnienia go obiektami testowymi– Domyślny konstruktor + metoda push_back

• Sortowania obiektów przechowywanych w kontenerze– Funkcja sort() z biblioteki algorithm

• Dostępu do obiektów przechowywanych w kontenerze w trybie do odczytu– Iterator const_iterator

• Dodawanie zbioru obiektów do istniejącego kontenera– Metoda insert()

Page 17: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

17Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Utworzenie kontenera – procedura testowaUtworzenie kontenera – procedura testowa

template<class T> void con_create(unsigned int size) { 

struct timeval start, end; T con; gettimeofday(&start, NULL); for (unsigned int i=0; i<size; ++i) { 

con.push_back(string("test")); } gettimeofday(&end, NULL); unsigned long t = (end.tv_sec*1000000 + end.tv_usec) 

­ (start.tv_sec*1000000 + start.tv_usec); cout << size << "\t" << t << endl; 

}

Page 18: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

18Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Utworzenie kontenera – zestawienie wynikówUtworzenie kontenera – zestawienie wyników

Liczba elementów:

vector [us]: deque [us]: list [us]:

10 35 12 15

100 34 24 36

1000 280 229 349

10000 3022 2174 3682

100000 29728 21810 37931

1000000 295685 219169 380891

10000000 3150320 2402150 3774683

Page 19: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

19Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Utworzenie kontenera – graficzna prezentacjaUtworzenie kontenera – graficzna prezentacja

10 100 1000 10000 100000 1000000 10000000

1

10

100

1000

10000

100000

1000000

10000000

Dodawanie elementów

vectordequelist

Liczba elementów [n]

Cza

s [u

s]

Page 20: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

20Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Sortowanie kontenera – procedura testowaSortowanie kontenera – procedura testowa

template<class T> void con_sort(unsigned int size) { 

struct timeval start, end; T con; for (unsigned int i=0; i<size; ++i) { 

con.push_back( string(lexical_cast<string>(size/(i+1)))); 

} gettimeofday(&start, NULL); sort(con.begin(), con.end()); gettimeofday(&end, NULL); unsigned long t = (end.tv_sec*1000000 + end.tv_usec) 

­ (start.tv_sec*1000000 + start.tv_usec); cout << size << "\t" << t << endl; 

}

Page 21: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

21Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Sortowanie listy – procedura testowaSortowanie listy – procedura testowa

template<> void con_sort<list<string> >(unsigned int size) { 

struct timeval start, end; list<string> con; for (unsigned int i=0; i<size; ++i) { 

con.push_back( string(lexical_cast<string>(size/(i+1)))); 

} gettimeofday(&start, NULL); con.sort(); gettimeofday(&end, NULL); unsigned long t = (end.tv_sec*1000000 + end.tv_usec) 

­ (start.tv_sec*1000000 + start.tv_usec); cout << size << "\t" << t << endl; 

}

Page 22: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

22Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Sortowanie kontenera – zestawienie wynikówSortowanie kontenera – zestawienie wyników

Liczba elementów:

vector [us]: deque [us]: list [us]:

10 13 11 24

100 57 78 70

1000 664 823 684

10000 8882 11167 8185

100000 108732 138821 93053

1000000 1302338 1675550 1001823

10000000 15797412 20170507 11177318

Page 23: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

23Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Sortowanie kontenera – graficzna prezentacjaSortowanie kontenera – graficzna prezentacja

10 100 1000 10000 100000 1000000 10000000

1

10

100

1000

10000

100000

1000000

10000000

100000000

Sortowanie elementów

vectordequelist

Liczba elementów [n]

Cza

s [u

s]

Page 24: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

24Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Dostęp do elementów – procedura testowaDostęp do elementów – procedura testowa

template<class T> void con_access_read(unsigned int size) { 

struct timeval start, end; T con(size); for (unsigned int i=0; i<size; ++i) 

con.push_back(string("test"));  gettimeofday(&start, NULL); typename T::const_iterator i; for (i=con.begin(); i!=con.end(); ++i) { 

string buf = *i; } gettimeofday(&end, NULL); unsigned long t = (end.tv_sec*1000000 + end.tv_usec) 

­ (start.tv_sec*1000000 + start.tv_usec); cout << size << "\t" << t << endl; 

}

Page 25: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

25Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Dostęp do elementów – zestawienie wynikówDostęp do elementów – zestawienie wyników

Liczba elementów:

vector [us]: deque [us]: list [us]:

10 3 3 3

100 12 11 12

1000 95 94 101

10000 933 915 1012

100000 9567 9538 10782

1000000 95766 95028 109020

10000000 950301 949429 1109043

Page 26: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

26Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Dostęp do elementów – graficzna prezentacjaDostęp do elementów – graficzna prezentacja

10 100 1000 10000 100000 1000000 10000000

1

10

100

1000

10000

100000

1000000

10000000

Odczyt elementów

vectordequelist

Liczba elementów [n]

Cza

s [u

s]

Page 27: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

27Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Dodawanie elementów – procedura testowaDodawanie elementów – procedura testowa

template<class T> void con_insert(unsigned int size) { 

struct timeval start, end; T con(size); for (unsigned int i=0; i<size; ++i) { 

con.push_back(string("test")); } string buf = "test"; gettimeofday(&start, NULL); typename T::iterator i=con.begin(); ++i; ++i; con.insert(i, 10, buf); gettimeofday(&end, NULL); unsigned long t = (end.tv_sec*1000000 + end.tv_usec) 

­ (start.tv_sec*1000000 + start.tv_usec); cout << size << "\t" << t << endl; 

}

Page 28: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

28Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Dodawanie elementów – zestawienie wynikówDodawanie elementów – zestawienie wyników

Liczba elementów:

vector [us]: deque [us]: list [us]:

10 4 6 4

100 12 4 4

1000 75 3 3

10000 773 4 4

100000 8147 10 7

1000000 81969 11 7

10000000 810680 11 7

Page 29: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

29Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Dodawanie elementów – graficzna prezentacjaDodawanie elementów – graficzna prezentacja

10 100 1000 10000 100000 1000000 10000000

1

10

100

1000

10000

100000

1000000

Wstawianie elementów

vectordequelist

Liczba elementów [n]

Cza

s [u

s]

Page 30: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

30Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

WnioskiWnioski

Page 31: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

31Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

Pozostałe przydatne kontenery

• Kontener std::set

• Kontener std::map

Page 32: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

32Bartłomiej Świercz – Katedra Mikroelektroniki i Technik Informatycznych

NarzędziaNarzędzia

• Plik nagłówkowy utlity:– pair

– make_pair

• Plik nagłówkowy memory:– auto_ptr

• Plik nagłówkowy limits:– numeric_limits

Page 33: Zaawansowane programowanie w języku C++ Biblioteka …neo.dmcs.pl/podyplomowe_smtm/cpp/cpp1_7_biblioteka_std.pdf · Projekt współfinansowany przez Unię Europejską w ramach Europejskiego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83www.kapitalludzki.p.lodz.pl

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 bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej -

zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych”

Prezentacja dystrybuowana jest bezpłatnie

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 bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej -

zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych”

Prezentacja dystrybuowana jest bezpłatnie