C Biblioteka standardowa Podrecznik programisty Wydanie II.pdf

(1086 KB) Pobierz
Tytuł oryginału: The C++ Standard Library: A Tutorial and Reference (2nd Edition)
Tłumaczenie: Przemysław Szeremiota (wstęp, rozdz. 1 – 6, 9 – 13, 15 – 17, 19, dodatek A), Radosław
Meryk (rozdz. 8, 14, 18), Rafał Jońca (rozdz. 7) z wykorzystaniem fragmentów książki „C++.
Biblioteka standardowa. Podręcznik programisty” w tłumaczeniu Przemysława Stecia i Rafała
Szpotona
ISBN: 978-83-246-5576-2
Authorized translation from the English language edition, entitled: THE C++ STANDARD LIBRARY:
A TUTORIAL AND REFERENCE, Second Edition; ISBN 0321623215; by Nicolai M. Josuttis;
published by Pearson Education, Inc, publishing as Addison Wesley.
Copyright © 2012 Pearson Education, Inc.
All rights reserved. No part of this book may by reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from Pearson Education, Inc.
Polish language edition published by HELION S.A. Copyright © 2014.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za
związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie
ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/cpbsp2.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/cpbsp2
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
Przedmowa do drugiego wydania
Podzi kowania do drugiego wydania
Przedmowa do pierwszego wydania
Podzi kowania do pierwszego wydania
1. O ksi ce
1.1. Dlaczego powsta a ta ksi ka?
1.2. Co nale y wiedzie przed przyst pieniem do lektury tej ksi ki?
1.3. Styl i struktura ksi ki
1.4. Jak czyta t ksi k ?
1.5. Stan obecny
1.6. Przyk adowy kod i dodatkowe informacje
17
19
21
23
25
25
26
26
30
30
30
2. Wprowadzenie do j zyka C++ i biblioteki standardowej
2.1. Historia standardów C++
2.1.1. Typowe pytania o standard C++11
2.1.2. Zgodno pomi dzy C++11 i C++98
2.2. Z o ono algorytmów a notacja O
31
31
32
34
34
3. Nowe elementy j zyka
3.1. Nowe elementy j zyka C++11
3.1.1. Istotne pomniejsze porz dki sk adniowe
3.1.2. Automatyczna dedukcja typu ze s owem auto
3.1.3. Jednolita sk adnia inicjalizacji i listy inicjalizacyjne
3.1.4. P tle zakresowe
3.1.5. Semantyka przeniesienia i referencje do r-warto ci
3.1.6. Nowe litera y napisowe
3.1.7. S owo noexcept
3.1.8. S owo constexpr
37
37
37
38
39
41
43
48
49
51
Kup książkę
Poleć książkę
6
3.1.9. Nowe elementy szablonów
3.1.10. Lambdy
3.1.11. S owo decltype
3.1.12. Nowa sk adnia deklaracji funkcji
3.1.13. Klasy wyliczeniowe
3.1.14. Nowe typy podstawowe
3.2. Starsze „nowo ci” j zyka C++
3.2.1. Jawna inicjalizacja typów podstawowych
3.2.2. Definicja funkcji main()
SPIS TRE CI
51
53
57
57
58
58
59
63
63
4. Poj cia ogólne
4.1. Przestrze nazw std
4.2. Pliki nag ówkowe
4.3. Obs uga b dów i wyj tków
4.3.1. Standardowe klasy wyj tków
4.3.2. Sk adowe klas wyj tków
4.3.3. Przekazywanie wyj tków z u yciem klasy exception_ptr
4.3.4. Zg aszanie wyj tków standardowych
4.3.5. Tworzenie klas pochodnych standardowych klas wyj tków
4.4. Obiekty wywo ywalne
4.5. Wielow tkowo i wspó bie no
4.6. Alokatory
65
65
67
68
68
72
80
80
81
82
83
85
5. Narz dzia
5.1. Pary i krotki
5.1.1. Pary
5.1.2. Krotki
5.1.3. Wej cie-wyj cie dla krotek
5.1.4. Konwersje pomi dzy krotkami a parami
5.2. Inteligentne wska niki
5.2.1. Klasa shared_ptr
5.2.2. Klasa weak_ptr
5.2.3. Niepoprawne stosowanie wska ników wspó dzielonych
5.2.4. Klasy wska ników s abych i wspó dzielonych w szczegó ach
5.2.5. Klasa unique_ptr
5.2.6. Klasa unique_ptr w szczegó ach
5.2.7. Klasa auto_ptr
5.2.8. Podsumowanie inteligentnych wska ników
5.3. Ograniczenia liczbowe
5.4. Cechy typowe i narz dzia pracy z typami
5.4.1. Przeznaczenie cech typowych
5.4.2. Cechy typowe w szczegó ach
5.4.3. Uj cia referencyjne
5.4.4. Uj cia typów funkcyjnych
5.5. Funkcje pomocnicze
5.5.1. Obliczanie warto ci minimalnej oraz maksymalnej
5.5.2. Zamiana dwóch warto ci
5.5.3. Dodatkowe operatory porównania
5.6. Statyczna arytmetyka liczb wymiernych — klasa ratio<>
87
88
88
96
101
103
103
104
112
118
120
127
140
143
144
145
152
152
156
163
164
165
165
167
169
170
Kup książkę
Poleć książkę
C++. BIBLIOTEKA STANDARDOWA. PODR CZNIK PROGRAMISTY
7
174
174
176
180
189
191
192
193
193
195
5.7. Zegary i czasomierze
5.7.1. Przegl d biblioteki chrono
5.7.2. Okresy
5.7.3. Zegary i punkty w czasie
5.7.4. Funkcje daty i czasu j zyka C i standardu POSIX
5.7.5. Czasowe wstrzymywanie wykonania
5.8. Pliki nag ówkowe <cstddef>, <cstdlib> oraz <cstring>
5.8.1. Definicje w pliku <cstddef>
5.8.2. Definicje w pliku <cstdlib>
5.8.3. Definicje w pliku <cstring>
6. Standardowa biblioteka szablonów (STL)
6.1. Sk adniki biblioteki STL
6.2. Kontenery
6.2.1. Kontenery sekwencyjne
6.2.2. Kontenery asocjacyjne
6.2.3. Kontenery nieporz dkuj ce
6.2.4. Tablice asocjacyjne
6.2.5. Inne kontenery
6.2.6. Adaptatory kontenerów
6.3. Iteratory
6.3.1. Inne przyk ady u ycia kontenerów asocjacyjnych i nieporz dkuj cych
6.3.2. Kategorie iteratorów
6.4. Algorytmy
6.4.1. Zakresy
6.4.2. Obs uga wielu zakresów
6.5. Adaptatory iteratorów
6.5.1. Iteratory wstawiaj ce
6.5.2. Iteratory strumieni
6.5.3. Iteratory odwrotne
6.5.4. Iteratory przenosz ce
6.6. W asne uogólnione operacje na kontenerach
6.7. Algorytmy modyfikuj ce
6.7.1. Usuwanie elementów
6.7.2. Algorytmy modyfikuj ce kontenery asocjacyjne i nieporz dkuj ce
6.7.3. Algorytmy a funkcje sk adowe
6.8. Funkcje jako argumenty algorytmów
6.8.1. Przyk ady u ycia funkcji jako argumentów algorytmów
6.8.2. Predykaty
6.9. Stosowanie lambd
6.10. Obiekty funkcyjne
6.10.1. Definicja obiektów funkcyjnych
6.10.2. Predefiniowane obiekty funkcyjne
6.10.3. Wi zanie wywo ania
6.10.4. Obiekty funkcyjne i wi zanie kontra lambdy
6.11. Elementy kontenerów
6.11.1. Wymagania wobec elementów kontenerów
6.11.2. Semantyka warto ci a semantyka referencji
197
198
199
201
210
214
219
221
222
223
228
233
234
238
242
245
245
247
249
251
251
252
253
256
258
259
259
261
263
267
267
273
274
277
278
278
279
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin