reklama - zainteresowany?

STL w praktyce. 50 sposobów efektywnego wykorzystania - Helion

STL w praktyce. 50 sposobów efektywnego wykorzystania
Autor: Scott Meyers
Tytuł oryginału: Effective STL 50 Specific Ways to Improve Your Use of the Standard Template Library
TÅ‚umaczenie: Adam Majczak (rozdz. 1-5), Wojciech Moch (rozdz. 6, 7, dod. A-C)
ISBN: 83-7361-373-0
stron: 296, Format: B5, okładka: miękka
Data wydania: 2004-03-17
Księgarnia: Helion

Cena książki: 34,90 zł

Dodaj do koszyka STL w praktyce. 50 sposobów efektywnego wykorzystania

Tagi: C++ - Programowanie

Standard Template Library to jedno z najpotężniejszych narzędzi programistycznych charakteryzujące się złożonością i wysokim stopniem komplikacji. W książce "STL w praktyce. 50 sposobów efektywnego wykorzystania" -- przeznaczonej dla zaawansowanych i średnio zaawansowanych programistów C++ -- znany ekspert Scott Meyers prezentuje najważniejsze techniki stosowania tego narzędzia. Poza listą zaleceń, jak postępować należy, a jak postępować się nie powinno, Meyers przedstawia wiele poważniejszych aspektów STL pozwalających zrozumieć, dlaczego pewne rozwiązania są poprawne, a innych należy unikać. Do każdej wskazówki dołączony jest kod źródłowy i dokładne objaśnienia, które powinny zainteresować zaawansowanych programistów.

Jeżeli Twoja wiedza ogranicza się do informacji dostępnych w dokumentacji STL, ta książka uzupełni ją o bezcenne wskazówki, które pozwolą Ci wykorzystać STL w praktyce.

Książka przedstawia:
  • Podstawowe informacje o bibliotece STL i jej zgodnoÅ›ci z innymi standardami
  • Wskazówki dotyczÄ…ce poprawnego doboru i używania pojemników
  • Opis pojemników typu vector i string
  • Omówienie pojemników asocjatywnych
  • Metody wÅ‚aÅ›ciwego korzystania z iteratorów
  • Algorytmy wchodzÄ…ce w skÅ‚ad STL
  • Funktory, klasy-funktory i funkcje
  • Programowanie za pomocÄ… biblioteki STL

Książkę uzupełniają dodatki, w których znajdziesz między innymi obszerną bibliografię na temat STL oraz cenne wskazówki dla programistów używających kompilatorów firmy Microsoft.

"STL w praktyce. 50 sposobów efektywnego wykorzystania" to nieocenione źródło wiedzy na temat jednego z najważniejszych aspektów programowania w C++. Jeżeli chcesz w praktyce wykorzystać STL, nie obędziesz się bez informacji zawartych w tej książce.

Dodaj do koszyka STL w praktyce. 50 sposobów efektywnego wykorzystania

Dodaj do koszyka STL w praktyce. 50 sposobów efektywnego wykorzystania

Spis treści

STL w praktyce. 50 sposobów efektywnego wykorzystania -- spis treści

Podziękowania (9)

Przedmowa (13)

Wprowadzenie (17)

Rozdział 1. Kontenery (29)

  • Zagadnienie 1. Uważnie dobierajmy kontenery (30)
  • Zagadnienie 2. Nie dajmy siÄ™ zwieść iluzji o istnieniu kodów niezależnych do zastosowanego kontenera (35)
  • Zagadnienie 3. Kopiowanie obiektów w kontenerach powinno być "tanie", Å‚atwe i poprawne (40)
  • Zagadnienie 4. Stosujmy metodÄ™ empty(), zamiast przyrównywać rozmiar size() do zera (43)
  • Zagadnienie 5. Preferujmy metody operujÄ…ce na caÅ‚ych zakresach (podzbiorach), bo sÄ… bardziej efektywne niż ich odpowiedniki operujÄ…ce pojedynczymi elementami (45)
  • Zagadnienie 6. BÄ…dźmy wyczuleni i przygotowani na najbardziej kÅ‚opotliwÄ… interpretacjÄ™ kompilatora C++ (56)
  • Zagadnienie 7. Gdy stosujemy kontenery zawierajÄ…ce wskaźniki zainicjowane za pomocÄ… operatora new, pamiÄ™tajmy o zwolnieniu dynamicznej pamiÄ™ci operatorem delete, zanim zawierajÄ…cy je obiekt-kontener sam zostanie usuniÄ™ty (59)
  • Zagadnienie 8. Nigdy nie twórzmy kontenerów zawierajÄ…cych wskaźniki kategorii auto_ptr (64)
  • Zagadnienie 9. Uważnie dobierajmy opcje do operacji kasowania (67)
  • Zagadnienie 10. Uważajmy na konwencje dynamicznej alokacji pamiÄ™ci i stosowne ograniczenia (73)
  • Zagadnienie 11. Zrozumienie uprawnionych zastosowaÅ„ alokatorów pamiÄ™ci tworzonych przez użytkownika (80)
  • Zagadnienie 12. Miejmy umiarkowane i realistyczne oczekiwania odnoÅ›nie poziomu bezpieczeÅ„stwa wielu wÄ…tków obsÅ‚ugiwanych przez kontenery STL (84)

Rozdział 2. Kontenery typu vector oraz string (89)

  • Zagadnienie 13. Lepiej stosować kontenery vector oraz string niż dynamicznie przydzielać pamięć tablicom (90)
  • Zagadnienie 14. Stosujmy metodÄ™ reserve, by uniknąć zbÄ™dnego przemieszczania elementów w pamiÄ™ci (93)
  • Zagadnienie 15. BÄ…dźmy ostrożni i wyczuleni na zróżnicowanie implementacji kontenerów typu string (96)
  • Zagadnienie 16. PowinieneÅ› wiedzieć, jak przesyÅ‚ać dane z kontenerów vector i string do klasycznego interfejsu zgodnego z C (102)
  • Zagadnienie 17. Sztuczka programistyczna "swap trick" pozwalajÄ…ca na obciÄ™cie nadmiarowej pojemnoÅ›ci (106)
  • Zagadnienie 18. Unikajmy stosowania wektora typu vector<bool> (108)

Rozdział 3. Kontenery asocjacyjne (111)

  • Zagadnienie 19. Ten sam czy taki sam - zrozumienie różnicy pomiÄ™dzy relacjami równoÅ›ci a równoważnoÅ›ci (112)
  • Zagadnienie 20. OkreÅ›lajmy typy porównawcze dla kontenerów asocjacyjnych zawierajÄ…cych wskaźniki (117)
  • Zagadnienie 21. Funkcje porównujÄ…ce powinny dla dwóch dokÅ‚adnie równych wartoÅ›ci zawsze zwracać wartość false (122)
  • Zagadnienie 22. Unikajmy bezpoÅ›redniego modyfikowania klucza w kontenerach typu set i multiset (126)
  • Zagadnienie 23. Rozważmy zastÄ…pienie kontenerów asocjacyjnych posortowanymi wektorami (133)
  • Zagadnienie 24. Gdy efektywność dziaÅ‚ania jest szczególnie istotna, należy bardzo uważnie dokonywać wyboru pomiÄ™dzy map::operator[]() a map::insert() (140)
  • Zagadnienie 25. Zapoznaj siÄ™ z niestandardowymi kontenerami mieszanymi (146)

Rozdział 4. Iteratory (151)

  • Zagadnienie 26. Lepiej wybrać iterator niż const_iterator, reverse_iterator czy const_reverse_iterator (151)
  • Zagadnienie 27. Stosujmy funkcje distance() i advance(), by przeksztaÅ‚cić typ const_iterator na typ iterator (155)
  • Zagadnienie 28. Jak stosować metodÄ™ base() należącÄ… do klasy reverse_iterator w celu uzyskania typu iterator? (159)
  • Zagadnienie 29. Rozważ zastosowanie iteratorów typu istreambuf_iterator do wczytywania danych znak po znaku (163)

Rozdział 5. Algorytmy (165)

  • Zagadnienie 30. Upewnijmy siÄ™, że docelowe zakresy sÄ… wystarczajÄ…co obszerne (166)
  • Zagadnienie 31. PamiÄ™tajmy o dostÄ™pnych i stosowanych opcjach sortowania (171)
  • Zagadnienie 32. Stosujmy metodÄ™ erase() w Å›lad za algorytmami kategorii remove(), jeÅ›li naprawdÄ™ chcemy coÅ› skutecznie usunąć z kontenera (177)
  • Zagadnienie 33. Przezornie i ostrożnie stosujmy algorytmy kategorii remove() wobec kontenerów zawierajÄ…cych wskaźniki (182)
  • Zagadnienie 34. Zwracajmy uwagÄ™, które z algorytmów oczekujÄ… posortowanych zakresów (186)
  • Zagadnienie 35. Implementujmy zwykÅ‚e porównywanie Å‚aÅ„cuchów znaków bez rozróżniania wielkoÅ›ci liter za pomocÄ… mismatch() lub lexicographical_compare() (190)
  • Zagadnienie 36. Zrozum prawidÅ‚owÄ… implementacjÄ™ algorytmu copy_if() (196)
  • Zagadnienie 37. Stosujmy accumulate() lub for_each() do operacji grupowych na zakresach (198)

Rozdział 6. Funktory, klasy-funktory, funkcje i inne (205)

  • Zagadnienie 38. Projektowanie klas-funktorów do przekazywania przez wartość (205)
  • Zagadnienie 39. Predykaty powinny być funkcjami czystymi (208)
  • Zagadnienie 40. Klasy-funktory powinny być adaptowalne (212)
  • Zagadnienie 41. Po co stosować funkcje ptr_fun, mem_fun i mem_fun_ref? (215)
  • Zagadnienie 42. Upewnij siÄ™, że less<t>() oznacza operator<() (219)

Rozdział 7. Programowanie za pomocą biblioteki STL (223)

  • Zagadnienie 43. Używaj algorytmów, zamiast pisać pÄ™tle (223)
  • Zagadnienie 44. Zamiast algorytmów stosujmy metody o takich samych nazwach (231)
  • Zagadnienie 45. Rozróżnianie funkcji count(), find(), binary_search(), lower_bound(), upper_bound() i equal_range() (233)
  • Zagadnienie 46. Jako parametry algorytmów stosuj funktory, a nie funkcje (241)
  • Zagadnienie 47. Unikaj tworzenia kodu "tylko do zapisu" (245)
  • Zagadnienie 48. Zawsze doÅ‚Ä…czaj wÅ‚aÅ›ciwe pliki nagłówkowe (248)
  • Zagadnienie 49. Naucz siÄ™ odczytywać komunikaty kompilatora zwiÄ…zane z bibliotekÄ… STL (249)
  • Zagadnienie 50. Poznaj strony WWW zwiÄ…zane z bibliotekÄ… STL (256)

Dodatek A Bibliografia (263)

  • Książki napisane przeze mnie (263)
  • Książki, które nie ja napisaÅ‚em (choć chciaÅ‚bym) (264)

Dodatek B Porównywanie ciągów znaków bez uwzględniania wielkości liter (267)

  • Jak wykonywać porównywanie ciÄ…gów znaków bez uwzglÄ™dniania wielkoÅ›ci liter - artykuÅ‚ autorstwa Matta Austerna (267)

Dodatek C Uwagi na temat platformy STL Microsoftu (277)

  • Szablony metod w STL (277)
  • MSVC wersje 4 do 6 (278)
  • RozwiÄ…zania dla kompilatorów MSVC w wersji 4 do 5 (279)
  • Dodatkowe rozwiÄ…zanie dla kompilatora MSVC w wersji 6. (280)

Skorowidz (283)

Dodaj do koszyka STL w praktyce. 50 sposobów efektywnego wykorzystania

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.