C++17 STL. Receptury (ebook)(audiobook)(audiobook)
- Autor:
- Jacek Galowicz
- Wydawnictwo:
- Helion
- Wydawnictwo:
- Helion
- Ocena:
- 5.0/6 Opinie: 4
- Stron:
- 456
- Druk:
- oprawa miękka
- 3w1 w pakiecie:
-
PDFePubMobi
Opis książki
Czytaj fragment
C++ pozwala zarówno na tworzenie interfejsów wysokiego poziomu, jak i na pisanie kodu działającego na niskim poziomie. Sprawdza się, gdy trzeba zapewnić wysoką wydajność i niskie obciążenie. Język ten jest konsekwentnie rozwijany: kolejne jego specyfikacje, C++14 i C++17, przyniosły wiele znakomitych udoskonaleń. Aby w pełni wykorzystać ten potencjał, należy korzystać z C++ łącznie z biblioteką STL. Jest to standardowa biblioteka języka, dzięki której C++ jest idealny do implementowania oprogramowania o wysokiej jakości i dużej wydajności. Zalety C++ sprawiają, że jest wykorzystywany niemal w każdej dziedzinie. Niestety, wielu programistów nie używa STL.
Dzięki tej książce poznasz użyteczność biblioteki standardowej (STL) w C++17 w praktyce, co pozwoli Ci na tworzenie efektywniejszego i w pełni przenośnego kodu źródłowego. Najpierw poznasz nowe funkcje języka, co pozwoli Ci na zrozumienie reguł rządzących C++, oraz funkcje biblioteki standardowej i sposób jej działania. Podczas pracy nad praktycznymi i łatwymi do wykorzystania recepturami poznasz podstawowe koncepcje STL, takie jak kontener, algorytm, klasa narzędziowa, wyrażenie lambda, iterator i wiele innych. Dowiesz się, jak działają najnowsze funkcje wprowadzone w standardzie C++17. Dzięki temu zaoszczędzisz czas i wysiłek podczas programowania, a Twój kod stanie się prostszy i zdecydowanie bardziej elegancki.
W książce między innymi:
- Nowości w standardzie C++ 17
- Kontenery STL i koncepcja iteratorów
- Wyrażenia lambda i zaawansowane algorytmy biblioteki STL
- Ciągi tekstowe, strumienie wejścia-wyjścia i wyrażenia regularne
- Programowanie równoległe i współbieżność
C++17 i STL. Elegancka klasyka i potężne możliwości.
O autorze
1 Jacek GalowiczJacek Galowicz do niedawna implementował sterowniki jądra w C i C++. Tworzył też grafiki 3D i bazy danych, zajmował się również komunikacją sieciową. Ostatnio pracuje w firmach Intel oraz FireEye, gdzie programuje systemy operacyjne o dużej wydajności i wysokim poziomie bezpieczeństwa, wykorzystując wirtualizację Intel x86. Jego ogromną pasją są nowoczesne implementacje C++ na niskim poziomie i łączenie w kodzie wysokiej wydajności z eleganckim stylem.
Podobne produkty
-
Algorytmy. Ilustrowany przewodnik Algorytmy. Ilustrowany przewodnik
Aditya Bhargava
-
Czysty kod. Podręcznik dobrego programisty Czysty kod. Podręcznik dobrego programisty
Robert C. Martin
-
Mistrz czystego kodu. Kodeks postępowania profe... Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów
Robert C. Martin
-
Vue.js 2. Wprowadzenie dla profesjonalistów Vue.js 2. Wprowadzenie dla profesjonalistów
Adam Freeman
-
Czysta architektura. Struktura i design oprogra... Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów
Robert C. Martin
-
Ciągłe dostarczanie oprogramowania w języku Jav... Ciągłe dostarczanie oprogramowania w języku Java. Najlepsze narzędzia i praktyki wdrażania kodu
Daniel Bryant, Abraham Marín-Pérez
Podobne produkty
-
Czysty kod. Podręcznik dobrego programisty Czysty kod. Podręcznik dobrego programisty
Robert C. Martin
-
Algorytmy. Ilustrowany przewodnik Algorytmy. Ilustrowany przewodnik
Aditya Bhargava
-
Mistrz czystego kodu. Kodeks postępowania profe... Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów
Robert C. Martin
-
Wielkie umysły programowania. Jak myślą i pracu... Wielkie umysły programowania. Jak myślą i pracują twórcy najważniejszych języków
Federico Biancuzzi, Shane Warden
-
Algorytmy Data Science. Siedmiodniowy przewodni... Algorytmy Data Science. Siedmiodniowy przewodnik. Wydanie II
David Natingga
-
Czysta architektura. Struktura i design oprogra... Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów
Robert C. Martin
Recenzje (1)
-
Programista Magazyn Rafał Kocisz
Nie ma co ukrywać: C++ ma dla mnie szczególne znaczenie. Od ponad dwudziestu lat pozostaje on moim podstawowym językiem programowania. I tak jak mój ojczysty język mówiony – czyli język polski – pozwala mi najbardziej dobitnie wyrażać myśli, ubierając je w słowa i zdania, tak za pośrednictwem C++ najprościej mi konstruować abstrakcje i opisywać algorytmy w celu zmuszenia komputera do realizacji określonych zadań. Pomimo tego, iż w międzyczasie poznałem kilkanaście innych języków programowania, które z większym czy mniejszym powodzeniem wykorzystuję do różnych celów, to C++ nadal pozostaje tym językiem, w którym programuję najbardziej efektywnie. C++ w przeciągu ostatnich ośmiu lat przeszedł bardzo gruntowną transformację. Trzy nowe odsłony standardu: C++11, C++14, C++17 ukazały zupełnie nowe oblicze tego języka i sprawiły, że moja pewność siebie w zakresie jego znajomości została poważnie naruszona. Zmotywowany chęcią utrzymania dobrej formy oraz płynności w posługiwaniu się moim ulubionym językiem programowania, od pewnego czasu systematycznie nadrabiam zaległości. Jako że jestem osobą, która lubi uczyć się, czytając książki, nieustannie szukam wartościowych tytułów, dzięki którym mogę realizować opisany wyżej cel. Niestety – nie jest to łatwe. Złota era dobrych książek na temat języka C++, przypadająca na pierwsze lata nowego tysiąclecia, z takim seriami jak Effective C++ autorstwa Scotta Meyersa, Exceptional C++ Herba Suttera czy C++ In Depth pod edycją Bjarne Stroustrup’a, przeminęła… To, co na razie pojawia się na rynku, dalekie jest zazwyczaj od standardu wyznaczonego przez tytuły z tamtego okresu, szczególnie kiedy szukamy pozycji zaawansowanych, przeznaczonych dla doświadczonych programistów. Na szczęście z roku na rok sytuacja powoli się poprawia i pojawiają się książki, które z czystym sumieniem mogę polecić. Dziś w ramach tej kolumny chciałbym omówić właśnie jeden z takich tytułów: C++17 STL. Receptury autorstwa Jacka Galowicza. Na początek kilka słów na temat struktury książki. Jak sugeruje tytuł opracowania, zostało ono przygotowane w dość popularnej konwencji tzw. „książki kucharskiej” (z angielskiego: cookbook). Stosując tę konwencję, zawartość opracowania organizuje się jako zestaw niezależnych, samodzielnych punktów, gdzie w każdym przedstawiono techniczne rozwiązanie konkretnego problemu. Podejście takie implikuje wysoce praktyczny charakter opracowania. C++17 STL. Receptury nie stanowi tutaj wyjątku: książka zawiera ponad dziewięćdziesiąt receptur zebranych w dziesięciu grupach tematycznych. W sumie mamy tutaj ponad 500 stron zawartości, przeznaczonej głównie dla średnio zaawansowanych i zaawansowanych programistów C++; zdecydowanie nie jest to książka dla osób, które dopiero uczą się podstaw tego języka. Przyjrzyjmy się merytorycznej zawartości publikacji. Tak jak wspomniałem wyżej, jest ona podzielona na dziesięć rozdziałów zawierających receptury o zbliżonej tematyce: » Nowe funkcje w C++17, » Kontenery STL, » Iteratory, » Wyrażenia lambda, » Podstawy algorytmów biblioteki STL, » Zaawansowane przykłady użycia algorytmów biblioteki STL, » Ciągi tekstowe, klasy strumieni i wyrażenia regularne, » Klasy narzędziowe, » Programowanie równoległe i współbieżność, » System plików. Tym, co rzuciło mi się w oczy w trakcie studiowania zawartości poszczególnych rozdziałów, jest bardzo silny nacisk położony przez autora na prezentację najnowszych elementów języka C++ oraz biblioteki STL. Ponadto książka Jacka Galowicza jest niewątpliwie opracowaniem bardzo kompletnym i kompleksowym: dotyka wielu aspektów i daje bardzo szeroki pogląd na bibliotekę standardową języka C++17. W tym ujęciu mogę śmiało stwierdzić, iż pozycja ta dopasowała się wręcz idealnie do moich potrzeb. Co więcej, muszę w tym miejscu pochwalić autora za to, że udało mu się uniknąć pułapki banalności, w którą często wpadają twórcy „cookbooków”. W przypadku pozycji C++17 STL. Receptury omawiane zagadnienia (poza tym, że zaimplementowane są z należytą starannością) mają w sobie jakąś iskrę, coś, co sprawia, iż lektura tego opracowania jest wciągająca i daje sporo satysfakcji (przykład? Proszę: implementowanie procedury generującej dane ASCII dla zbioru Mandelbrota). Ja osobiście wyniosłem z lektury omawianego tu tytułu bardzo dużo, z tego względu polecam go wszystkim czytelnikom zainteresowanym podniesieniem swoich kwalifikacji z zakresu programowania w nowoczesnej odsłonie języka C++.
Szczegóły książki
- Tytuł oryginału:
- C++17 STL Cookbook
- Tłumaczenie:
- Robert Górczyński
- ISBN Książki drukowanej:
- 978-83-283-4501-0, 9788328345010
- Data wydania książki drukowanej:
- 2018-09-21
- ISBN Ebooka:
- 978-83-283-4502-7, 9788328345027
- Data wydania ebooka:
-
2018-09-21
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Format:
- 170x230
- Numer z katalogu:
- 74660
- Rozmiar pliku Pdf:
- 4.7MB
- Rozmiar pliku ePub:
- 5.9MB
- Rozmiar pliku Mobi:
- 5.9MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Erraty / Zgłoś erratę
- Kategorie:
Programowanie » C++ - Programowanie
Spis treści
- Wprowadzenie (21)
- Użycie strukturalnych wiązań do rozpakowania wartości zwrotnej (22)
- Jak to zrobić? (22)
- Jak to działa? (24)
- Co dalej? (24)
- Ograniczanie zasięgu zmiennej do konstrukcji if i switch (26)
- Jak to zrobić? (26)
- Jak to działa? (27)
- Co dalej? (28)
- Zalety stosowania nowych reguł inicjalizacji z użyciem składni opartej na nawiasach (29)
- Jak to zrobić? (29)
- Jak to działa? (30)
- Umożliwienie konstruktorowi automatycznego określenia typu klasy szablonu (31)
- Jak to zrobić? (31)
- Jak to działa? (31)
- Co dalej? (32)
- Użycie wyrażenia constexpr-if do uproszczenia decyzji podejmowanych podczas kompilacji (33)
- Jak to zrobić? (34)
- Jak to działa? (35)
- Co dalej? (36)
- Włączenie bibliotek w postaci samych nagłówków z użyciem osadzonych zmiennych (37)
- Jak to zrobić? (37)
- Jak to działa? (38)
- Co dalej? (39)
- Implementowanie za pomocą wyrażeń fold przydatnych funkcji pomocniczych (40)
- Jak to zrobić? (40)
- Jak to działa? (41)
- Co dalej? (41)
- Wprowadzenie (48)
- Magazyn danych znajdujących się obok siebie (48)
- Magazyn danych w postaci listy (49)
- Drzewo wyszukiwania (49)
- Tabela wartości hash (50)
- Adapter kontenera (50)
- Użycie stylu usuń - wymaż w kontenerze std::vector (50)
- Jak to zrobić? (51)
- Jak to działa? (52)
- Co dalej? (54)
- Usuwanie w czasie O(1) elementów z nieposortowanego kontenera std::vector (54)
- Jak to zrobić? (55)
- Jak to działa? (57)
- Uzyskanie bezpiecznego dostępu do egzemplarzy std::vector (58)
- Jak to zrobić? (58)
- Jak to działa? (59)
- Co dalej? (60)
- Sortowanie egzemplarzy std::vector (60)
- Jak to zrobić? (60)
- Jak to działa? (62)
- Co dalej? (62)
- Efektywne i warunkowe wstawianie elementów do kontenera std::map (63)
- Jak to zrobić? (63)
- Jak to działa? (65)
- Co dalej? (66)
- Stosowanie nowej semantyki podpowiedzi podczas wstawiania elementów za pomocą std::map::insert (66)
- Jak to zrobić? (66)
- Jak to działa? (68)
- Co dalej? (68)
- Efektywne modyfikowanie kluczy elementów std::map (69)
- Jak to zrobić? (70)
- Jak to działa? (72)
- Co dalej? (72)
- Użycie kontenera std::unordered_map z niestandardowymi typami danych (73)
- Jak to zrobić? (73)
- Jak to działa? (75)
- Filtrowanie duplikatów w danych wejściowych użytkownika i
wyświetlanie ich w kolejności alfabetycznej za pomocą kontenera
std::set (76)
- Jak to zrobić? (76)
- Jak to działa? (77)
- Implementowanie za pomocą kontenera std::stack prostego kalkulatora RPN (79)
- Jak to zrobić? (80)
- Jak to działa? (82)
- Co dalej? (84)
- Implementowanie za pomocą kontenera std::map licznika częstotliwości występowania słów (85)
- Jak to zrobić? (85)
- Jak to działa? (87)
- Implementowanie za pomocą kontenera std::set narzędzia
pomocniczego przeznaczonego do wyszukiwania bardzo długich zdań w
tekście (88)
- Jak to zrobić? (89)
- Jak to działa? (91)
- Co dalej? (92)
- Implementowanie za pomocą kontenera std::priority_queue listy rzeczy do zrobienia (93)
- Jak to zrobić? (93)
- Jak to działa? (95)
- Wprowadzenie (97)
- Kategorie iteratorów (99)
- Tworzenie własnego zakresu, który można iterować (101)
- Jak to zrobić? (101)
- Jak to działa? (103)
- Tworzenie własnych iteratorów zgodnych z kategoriami iteratora STL (104)
- Jak to zrobić? (104)
- Jak to działa? (106)
- Co dalej? (107)
- Użycie adapterów iteratora do wypełniania ogólnych struktur danych (107)
- Jak to zrobić? (107)
- Jak to działa? (109)
- Implementowanie algorytmów w kategoriach iteratorów (110)
- Jak to zrobić? (111)
- Co dalej? (113)
- Iteracja w drugą stronę za pomocą adaptera iteratora odwrotnego (114)
- Jak to zrobić? (114)
- Jak to działa? (115)
- Zakończenie działania iteratora w zakresie za pomocą wartownika iteratora (116)
- Jak to zrobić? (117)
- Automatyczne sprawdzanie kodu iteratora (119)
- Jak to zrobić? (119)
- Jak to działa? (122)
- Co dalej? (123)
- Tworzenie własnego adaptera iteratora łączenia na zakładkę (123)
- Jak to zrobić? (125)
- Co dalej? (128)
- Wprowadzenie (131)
- Definiowanie funkcji opartej na wyrażeniu lambda (133)
- Jak to zrobić? (133)
- Jak to działa? (136)
- Dodawanie polimorfizmu poprzez opakowanie wyrażenia lambda egzemplarzem std::function (138)
- Jak to zrobić? (138)
- Jak to działa? (140)
- Łączenie funkcji za pomocą konkatenacji (141)
- Jak to zrobić? (142)
- Jak to działa? (143)
- Tworzenie skomplikowanych predykatów z logiczną koniunkcją (144)
- Jak to zrobić? (145)
- Co dalej? (146)
- Wywoływanie wielu funkcji dla tych samych danych wejściowych (146)
- Jak to zrobić? (147)
- Jak to działa? (148)
- Implementowanie funkcji transform_if() za pomocą algorytmu std::accumulate i wyrażeń lambda (150)
- Jak to zrobić? (150)
- Jak to działa? (152)
- Generowanie w trakcie kompilacji iloczynu kartezjańskiego par dla dowolnych danych wejściowych (155)
- Jak to zrobić? (156)
- Jak to działa? (158)
- Wprowadzenie (161)
- Kopiowanie elementów między kontenerami (163)
- Jak to zrobić? (164)
- Jak to działa? (166)
- Sortowanie kontenera (167)
- Jak to zrobić? (167)
- Jak to działa? (170)
- Usuwanie określonych elementów z kontenera (171)
- Jak to zrobić? (171)
- Jak to działa? (173)
- Przekształcanie zawartości kontenera (174)
- Jak to zrobić? (174)
- Jak to działa? (176)
- Wyszukiwanie elementów w uporządkowanych i nieuporządkowanych wektorach (176)
- Jak to zrobić? (177)
- Jak to działa? (180)
- Ograniczanie za pomocą std::clamp wartości wektora do określonego zakresu liczbowego (182)
- Jak to zrobić? (182)
- Jak to działa? (185)
- Wyszukiwanie za pomocą std::search wzorca w ciągu tekstowym i wybór optymalnej implementacji (186)
- Jak to zrobić? (186)
- Jak to działa? (188)
- Próbkowanie ogromnego wektora (189)
- Jak to zrobić? (190)
- Jak to działa? (192)
- Generowanie permutacji sekwencji danych wejściowych (193)
- Jak to zrobić? (193)
- Jak to działa? (194)
- Implementowanie narzędzia łączenia słowników (195)
- Jak to zrobić? (195)
- Jak to działa? (197)
- Wprowadzenie (200)
- Implementowanie klasy drzewa trie za pomocą algorytmów STL (201)
- Jak to zrobić? (201)
- Jak to działa? (204)
- Implementowanie za pomocą drzewa trie generatora sugestii danych wejściowych używanych podczas wyszukiwania (206)
- Jak to zrobić? (206)
- Jak to działa? (210)
- Co dalej? (210)
- Implementowanie wzoru przekształcenia Fouriera za pomocą algorytmów STL (211)
- Jak to zrobić? (212)
- Jak to działa? (217)
- Obliczanie błędu sumy dwóch wektorów (218)
- Jak to zrobić? (218)
- Jak to działa? (220)
- Implementowanie procedury generującej dane ASCII dla zbioru Mandelbrota (221)
- Jak to zrobić? (223)
- Jak to działa? (226)
- Opracowanie własnego algorytmu - podział danych (227)
- Jak to zrobić? (228)
- Jak to działa? (229)
- Co dalej? (230)
- Połączenie użytecznych algorytmów biblioteki STL - zbieranie danych (231)
- Jak to zrobić? (231)
- Jak to działa? (233)
- Usuwanie nadmiarowych białych znaków znajdujących się między słowami (235)
- Jak to zrobić? (235)
- Jak to działa? (237)
- Kompresja i dekompresja ciągów tekstowych (238)
- Jak to zrobić? (238)
- Jak to działa? (240)
- Co dalej? (241)
- Wprowadzenie (244)
- Tworzenie, konkatenacja i przekształcanie ciągów tekstowych (245)
- Jak to zrobić? (246)
- Jak to działa? (248)
- Usuwanie białych znaków z początku i końca ciągu tekstowego (248)
- Jak to zrobić? (249)
- Jak to działa? (250)
- Komfortowe użycie klasy std::string bez kosztów związanych z tworzeniem obiektów std::string (251)
- Jak to zrobić? (252)
- Jak to działa? (254)
- Odczyt wartości z danych wejściowych dostarczonych przez użytkownika (254)
- Jak to zrobić? (255)
- Jak to działa? (257)
- Zliczanie wszystkich słów w pliku (258)
- Jak to zrobić? (258)
- Jak to działa? (260)
- Formatowanie danych wyjściowych za pomocą manipulatorów strumienia wejścia - wyjścia (260)
- Jak to zrobić? (261)
- Jak to działa? (264)
- Inicjalizacja skomplikowanych obiektów na podstawie pliku źródłowego (266)
- Jak to zrobić? (266)
- Jak to działa? (268)
- Wypełnianie kontenera za pomocą iteratorów std::istream (269)
- Jak to zrobić? (269)
- Jak to działa? (272)
- Proste wyświetlanie danych za pomocą iteratorów std::ostream (273)
- Jak to zrobić? (273)
- Jak to działa? (276)
- Przekierowywanie sekcji kodu do pliku danych wyjściowych (277)
- Jak to zrobić? (278)
- Jak to działa? (280)
- Tworzenie własnych klas ciągu tekstowego za pomocą dziedziczenia po klasie std::char_traits (281)
- Jak to zrobić? (282)
- Jak to działa? (286)
- Tokenizowanie danych wejściowych za pomocą biblioteki wyrażeń regularnych (287)
- Jak to zrobić? (287)
- Jak to działa? (289)
- Wygodne formatowanie liczb w locie w zależności od kontekstu (291)
- Jak to zrobić? (291)
- Przechwytywanie na podstawie błędów std::iostream wyjątków możliwych do odczytania (293)
- Jak to zrobić? (294)
- Jak to działa? (296)
- Wprowadzenie (298)
- Konwertowanie między różnymi jednostkami czasu za pomocą std::ratio (298)
- Jak to zrobić? (299)
- Jak to działa? (301)
- Co dalej? (303)
- Konwertowanie między bezwzględnymi i względnymi wartościami czasu za pomocą std::chrono (304)
- Jak to zrobić? (304)
- Jak to działa? (306)
- Bezpieczne sygnalizowanie awarii za pomocą typu std::optional (307)
- Jak to zrobić? (307)
- Jak to działa? (310)
- Użycie funkcji wraz z krotkami (311)
- Jak to zrobić? (311)
- Jak to działa? (313)
- Szybkie opracowywanie struktur danych za pomocą std::tuple (313)
- Jak to zrobić? (314)
- Jak to działa? (318)
- Zastąpienie void* przez std::any dla zwiększenia bezpieczeństwa typu (320)
- Jak to zrobić? (321)
- Jak to działa? (323)
- Przechowywanie różnych typów za pomocą std::variant (323)
- Jak to zrobić? (324)
- Jak to działa? (327)
- Automatyczna obsługa zasobów za pomocą std::unique_ptr (329)
- Jak to zrobić? (329)
- Jak to działa? (332)
- Automatyczna obsługa współdzielonej pamięci na stercie za pomocą std::shared_ptr (333)
- Jak to zrobić? (333)
- Jak to działa? (336)
- Co dalej? (337)
- Praca ze słabymi wskaźnikami do współdzielonych obiektów (338)
- Jak to zrobić? (339)
- Jak to działa? (341)
- Uproszczenie obsługi zasobów przestarzałych API za pomocą sprytnych wskaźników (342)
- Jak to zrobić? (343)
- Jak to działa? (344)
- Współdzielenie różnych wartości składowych tego samego obiektu (345)
- Jak to zrobić? (346)
- Jak to działa? (347)
- Generowanie liczb losowych i wybór odpowiedniego silnika do generowania tego rodzaju liczb (348)
- Jak to zrobić? (349)
- Jak to działa? (353)
- Generowanie liczb losowych i umożliwienie bibliotece STL określenia szczegółów rozkładu (354)
- Jak to zrobić? (354)
- Jak to działa? (359)
- Wprowadzenie (362)
- Automatyczne stosowanie programowania równoległego w kodzie utworzonego za pomocą standardowych algorytmów (363)
- Jak to zrobić? (363)
- Jak to działa? (365)
- Uśpienie programu na podany okres czasu (369)
- Jak to zrobić? (369)
- Jak to działa? (370)
- Uruchamianie i zatrzymywanie wątków (371)
- Jak to zrobić? (371)
- Jak to działa? (373)
- Przeprowadzanie bezpiecznego pod względem wyjątków
nakładania blokady współdzielonej za pomocą std::unique_lock i
std::shared_lock (375)
- Jak to zrobić? (375)
- Jak to działa? (378)
- Zapobieganie zakleszczeniom dzięki stosowaniu algorytmu std::scoped_lock (381)
- Jak to zrobić? (382)
- Jak to działa? (384)
- Synchronizacja jednoczesnego użycia algorytmu std::cout (384)
- Jak to zrobić? (385)
- Jak to działa? (386)
- Bezpieczne odkładanie inicjalizacji za pomocą std::call_once (388)
- Jak to zrobić? (389)
- Jak to działa? (390)
- Przesunięcie zadania do wykonywania w tle za pomocą std::async (390)
- Jak to zrobić? (391)
- Jak to działa? (393)
- Co dalej? (395)
- Implementacja wzorca producent - konsument za pomocą std::condition_variable (395)
- Jak to zrobić? (396)
- Jak to działa? (398)
- Implementacja wzorca producent - konsument za pomocą std::condition_variable (400)
- Jak to zrobić? (400)
- Jak to działa? (404)
- Równoległe generowanie za pomocą std::async danych ASCII dla zbioru Mandelbrota (406)
- Jak to zrobić? (406)
- Jak to działa? (409)
- Implementacja za pomocą std::future niewielkiej biblioteki automatycznej programowania równoległego (410)
- Jak to zrobić? (411)
- Jak to działa? (415)
- Wprowadzenie (419)
- Implementowanie programu przeprowadzającego normalizację ścieżki dostępu (420)
- Jak to zrobić? (420)
- Jak to działa? (422)
- Co dalej? (422)
- Pobieranie kanonicznej ścieżki dostępu na podstawie względnej ścieżki dostępu (423)
- Jak to zrobić? (423)
- Jak to działa? (426)
- Wyświetlanie wszystkich plików znajdujących się w danym katalogu (426)
- Jak to zrobić? (427)
- Jak to zrobić? (430)
- Implementowanie programu wyszukującego dane i działającego podobnie jak narzędzie grep (431)
- Jak to zrobić? (431)
- Jak to działa? (433)
- Co dalej? (434)
- Implementowanie programu automatycznie zmieniającego nazwy plików (434)
- Jak to zrobić? (435)
- Implementowanie programu obliczającego wielkość katalogu (437)
- Jak to zrobić? (437)
- Jak to działa? (439)
- Obliczanie danych statystycznych dotyczących typów plików (440)
- Jak to zrobić? (440)
- Implementowanie narzędzia zmniejszającego wielkość katalogu
poprzez zastąpienie powielonych plików dołączeniami
symbolicznymi (442)
- Jak to zrobić? (443)
- Jak to działa? (445)
- Co dalej? (446)
O autorze (13)
O redaktorze merytorycznym (14)
Wprowadzenie (15)
Rozdział 1. Nowe funkcje w C++17 (21)
Rozdział 2. Kontenery STL (47)
Rozdział 3. Iteratory (97)
Rozdział 4. Wyrażenia lambda (131)
Rozdział 5. Podstawy algorytmów biblioteki STL (161)
Rozdział 6. Zaawansowane przykłady użycia algorytmów biblioteki STL (199)
Rozdział 7. Ciągi tekstowe, klasy strumieni i wyrażenia regularne (243)
Rozdział 8. Klasy narzędziowe (297)
Rozdział 9. Programowanie równoległe i współbieżność (361)
Rozdział 10. System plików (419)
Skorowidz (447)
Oceny i opinie klientów (4)
(3)
(0)
(0)
(0)
(1)
(0)
6 oceniona przez: Łukasz, 2020-03-16
6 oceniona przez: Kamil, 2019-07-27
6 oceniona przez: Bartosz, 2018-12-21
2 oceniona przez: PPaweł, 2019-06-06
więcej opinii