[Zurück] [Index] [Weiter]     Kuhlins/Schader: Die C++-Standardbibliothek


Download als PDF-Datei [211 KB]

Inhaltsverzeichnis

1  Vorbemerkungen

1.1  namespace std
1.2  Header-Dateien
1.3  Eigenschaften
1.4  Kanonische Klassen
1.5  Komplexität und Aufwand

2  Konzeption und Entwicklung der STL

2.1  Eine Feldklasse
2.2  Eine Listenklasse
2.3  Folgerungen
2.4  Standardisierung der Suchfunktion
2.5  Die Schnittstelle eines Iterators
2.6  Ein Iterator für die Feldklasse
2.7  Ein Iterator für die Listenklasse
2.8  Zusammenfassung
2.9  const-Korrektheit
2.10  Flexible Suche mit Funktionsobjekten
2.11  Kleinste Bausteine
2.12  Programmübersetzungs- und ?laufzeit
2.13  Der Rückgabetyp für eine Zählfunktion
2.14  Fehlerquellen
2.15  Ist die STL objektorientiert?
2.16  Einsatz der Standardbibliothek
2.17  Aufgaben

3  Funktionsobjekte

3.1  Basisklassen für Funktionsobjekte
3.2  Arithmetische, logische und Vergleichsoperationen
3.3  Projektionen
3.3.1  binder1st
3.3.2  bind1st
3.3.3  binder2nd
3.3.4  bind2nd
3.3.5  Beispiel
3.4  Negativierer
3.4.1  unary_negate
3.4.2  not1
3.4.3  binary_negate
3.4.4  not2
3.5  Adapter für Funktionszeiger
3.5.1  pointer_to_unary_function
3.5.2  ptr_fun für einstellige Funktionen
3.5.3  pointer_to_binary_function
3.5.4  ptr_fun für zweistellige Funktionen
3.6  Adapter für Zeiger auf Elementfunktionen
3.6.1  mem_fun_ref_t und const_mem_fun_ref_t
3.6.2  mem_fun_ref für Elementfunktionen ohne Argument
3.6.3  mem_fun1_ref_t und const_mem_fun1_ref_t
3.6.4  mem_fun_ref für Elementfunktionen mit Argument
3.6.5  mem_fun_t und const_mem_fun_t
3.6.6  mem_fun für Elementfunktionen ohne Argument
3.6.7  mem_fun1_t und const_mem_fun1_t
3.6.8  mem_fun für Elementfunktionen mit Argument
3.7  Funktionen zusammensetzen
3.8  Aufgaben

4  Hilfsmittel

4.1  Vergleichsoperatoren
4.2  pair
4.3  Aufgaben

5  Container

5.1  vector
5.2  Allgemeine Anforderungen an Container
5.3  Anforderungen an reversible Container
5.4  Anforderungen an sequenzielle Container
5.5  Optionale Anforderungen an sequenzielle Container
5.6  Weitere Funktionen
5.7  deque
5.8  list
5.9  Auswahl nach Aufwand
5.10  Aufgaben

6  Containeradapter

6.1  stack
6.2  queue
6.3  priority_queue
6.4  Aufgaben

7  Assoziative Container

7.1  map
7.2  Anforderungen an assoziative Container
7.3  Der Indexoperator der Klasse map
7.4  multimap
7.5  set
7.6  multiset
7.7  Elemente in set und multiset modifizieren
7.8  Übersicht der Container
7.9  Aufgaben

8  Iteratoren

8.1  Iteratoranforderungen
8.2  Input-Iteratoren
8.3  Output-Iteratoren
8.4  Forward-Iteratoren
8.5  Bidirectional-Iteratoren
8.6  Random-Access-Iteratoren
8.7  Übersicht über die Iteratorkategorien
8.8  Hilfsklassen und ?funktionen für Iteratoren
8.8.1  iterator_traits
8.8.2  Die Basisklasse iterator
8.8.3  Iteratorfunktionen
8.8.3.1  advance
8.8.3.2  distance
8.9  Reverse-Iteratoren
8.10  Insert-Iteratoren
8.10.1  back_insert_iterator
8.10.2  front_insert_iterator
8.10.3  insert_iterator
8.11  Stream-Iteratoren
8.11.1  istream_iterator
8.11.2  ostream_iterator
8.12  Aufgaben

9  Algorithmen

9.1  Übersicht
9.2  Nichtmodifizierende Algorithmen
9.2.1  for_each
9.2.2  find und find_if
9.2.3  find_end
9.2.4  find_first_of
9.2.5  adjacent_find
9.2.6  count und count_if
9.2.7  mismatch
9.2.8  equal
9.2.9  search
9.2.10  search_n
9.3  Modifizierende Algorithmen
9.3.1  copy
9.3.2  copy_backward
9.3.3  swap
9.3.4  iter_swap
9.3.5  swap_ranges
9.3.6  transform
9.3.7  replace und replace_if
9.3.8  replace_copy und replace_copy_if
9.3.9  fill und fill_n
9.3.10  generate und generate_n
9.3.11  remove_copy und remove_copy_if
9.3.12  remove und remove_if
9.3.13  unique_copy
9.3.14  unique
9.3.15  reverse
9.3.16  reverse_copy
9.3.17  rotate
9.3.18  rotate_copy
9.3.19  random_shuffle
9.3.20  partition und stable_partition
9.4  Sortieren und ähnliche Operationen
9.4.1  sort
9.4.2  stable_sort
9.4.3  partial_sort
9.4.4  partial_sort_copy
9.4.5  nth_element
9.5  Binäre Suchalgorithmen
9.5.1  lower_bound
9.5.2  upper_bound
9.5.3  equal_range
9.5.4  binary_search
9.5.5  Schlüsselsuche mit Funktionsobjekt
9.6  Mischalgorithmen
9.6.1  merge
9.6.2  inplace_merge
9.7  Mengenalgorithmen für sortierte Bereiche
9.7.1  includes
9.7.2  set_union
9.7.3  set_intersection
9.7.4  set_difference
9.7.5  set_symmetric_difference
9.7.6  Mengenalgorithmen für multiset-Objekte
9.8  Heap-Algorithmen
9.8.1  make_heap
9.8.2  pop_heap
9.8.3  push_heap
9.8.4  sort_heap
9.8.5  Beispielprogramm
9.9  Minimum und Maximum
9.9.1  min
9.9.2  max
9.9.3  min_element
9.9.4  max_element
9.10  Permutationen
9.10.1  lexicographical_compare
9.10.2  next_permutation
9.10.3  prev_permutation
9.11  Numerische Algorithmen
9.11.1  accumulate
9.11.2  inner_product
9.11.3  adjacent_difference
9.11.4  partial_sum
9.12  Erweitern der Bibliothek mit eigenen Algorithmen
9.13  Präfix- versus Postfixoperatoren
9.14  Aufgaben

10  Allokatoren

10.1  Der Standardallokator
10.2  allocator<void>
10.3  Aufgaben

11  Strings

11.1  Containereigenschaften
11.2  basic_string
11.3  Implementierungsdetails
11.4  Sortieren von Strings
11.5  Aufgaben

12  Streams

12.1  Überblick
12.2  ios_base
12.2.1  Formatierung
12.2.2  Streamstatus
12.2.3  Initialisierung
12.2.4  Nationale Einstellungen
12.2.5  Synchronisation
12.3  basic_ios
12.3.1  Statusfunktionen
12.3.2  Ausnahmen
12.4  basic_ostream
12.4.1  sentry
12.4.2  Formatierte Ausgaben
12.4.3  Unformatierte Ausgaben
12.5  basic_istream
12.5.1  sentry
12.5.2  Formatierte Eingaben
12.5.3  Unformatierte Eingaben
12.6  basic_iostream
12.7  Ein- und Ausgabe von Objekten benutzerdefinierter Klassen
12.8  Namensdeklarationen
12.9  Manipulatoren
12.9.1  Manipulatoren ohne Parameter
12.9.2  Manipulatoren mit einem Parameter
12.10  Positionieren von Streams
12.11  Streams für Dateien
12.11.1  Modi zum Öffnen von Dateien
12.11.2  Die Header-Datei <fstream>
12.12  Streams für Strings
12.13  Aufgaben

13  Weitere Komponenten der C++?Standardbibliothek

13.1  auto_ptr
13.2  bitset
13.3  vector<bool>
13.4  complex
13.5  numeric_limits
13.6  valarray
13.6.1  slice und slice_array
13.6.2  gslice und gslice_array
13.6.3  mask_array
13.6.4  indirect_array
13.7  Aufgaben

14  Zeiger in Containern verwalten

14.1  Beispielklassen
14.2  Ein set-Objekt verwaltet Zeiger
14.3  Smart-Pointer
14.4  Ein set-Objekt verwaltet Smart-Pointer
14.5  Ein set-Objekt verwaltet Zeiger mittels Funktionsobjekten
14.6  Ein map-Objekt verwaltet Zeiger
14.7  Aufgaben

15  Lösungen

Anhang

A  Die Containerklasse slist
B  Die Klasse LogAllocator
C  Literatur

Index