Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die STL. Schreiben und Lesen von Dateien  Einbinden von  Lesen und Schreiben über stream-Objekte Streams führen Transformationen zwischen Programmobjekten.

Ähnliche Präsentationen


Präsentation zum Thema: "Die STL. Schreiben und Lesen von Dateien  Einbinden von  Lesen und Schreiben über stream-Objekte Streams führen Transformationen zwischen Programmobjekten."—  Präsentation transkript:

1 Die STL

2 Schreiben und Lesen von Dateien  Einbinden von  Lesen und Schreiben über stream-Objekte Streams führen Transformationen zwischen Programmobjekten und Datenquellen oder - senken durch  Output Stream wandelt Objekte in Sequenz von Low-Level Zeichen  Input Stream wandelt Sequenz von Low- Level Zeichen in Objekte  Beispiel: cout und cin

3 Schreiben und Lesen von Dateien  Allgemeine Verwendung von Stream- Objekten Öffnen der Ressource bei Definition der Variablen, inkl. Parameter (Flags) Lesen / Schreiben von der / auf die Ressource, inkl. Statusabfragen Schließen der Ressource

4 Schreiben in eine Datei  Klasse ofstream  Öffnen der Datei bei Definition der Variablen mit Parametern Dateiname Flags (Binär / Text / Anhängen / Ersetzen...) ofstream myOStream("myFile.xyz", ios::binary + ios::app);

5 Schreiben in eine Datei  Schreiben von Werten mittels der Methode write(...) oder mit Umleitungsoperator << write() erwartet Zeiger auf char und Größe der Ressource write((char *)myObject, sizeof(myObject));  Nach Beendigung des Schreibens stream mit close() schließen myOStream << "Some text" << endl; myOStream.close()

6 Lesen aus einer Datei  Klasse ifstream  Öffnen analog zu ofstream (andere Flags) ifstream myIStream("myFile.xyz", ios::binary);  vor Verwendung Test auf Erfolg Variable ist NULL bei Misserfolg

7 Aufgabe 22 – Schreib und lies  Gib über die Konsole einen Text ein  Speichere diesen Text in eine Datei. Verwende dabei den Append-Modus  Lies über einen anderen Stream die Datei wieder ein  Gib den Inhalt der Datei auf der Konsole aus

8 Die STL  Standard Template Library  vorgefertigte Lösungen für immer wieder benötigte Programmiertechniken  im C++-Standard festgeschrieben  Funktionalitäten allgemein und konfigurierbar gehalten  man nutzt Wissen und Erfahrung versierter Entwickler

9 Inhalt der STL  Container (Vektoren, Listen, Mengen, Queues und Stacks)  Iteratoren (durchgehen von Container- elementen in wohldefinierter Ordnung)  Strings (char[])  Streams (Datei, Keyboard, Bildschirm...)  Numerik (Strukturen, Logarithmen, Zufallszahlen...)  Algorithmen und Funktionsobjekte (Transformationen, Vertauschung...)

10 STL: Vektoren  Arrays mit zusätzlichen Eigenschaften  Einbinden der Datei  Inhaltstyp beliebig angebbar (Template!) vector myVec(10); Angabe der Größe optional  Iterator zum durchlaufen des Vectors vector ::iterator iter;  Funktionen zur Ermittlung von Anfang und Ende des Vektors for(iter = myVec.begin(); iter < myVec.end(); iter++) cout << *iter << endl;

11 STL: Vektoren  size() – Ermittlung der Größe des Vektors  push_back(elem) – hängt Element elem an den Vektor an  pop_back() – löscht letztes Element des Vektors  at(i) – (überprüfter) Zugriff auf Element an der Stelle i wirft std::out_of_range von exception und logic_error abgeleitet genauere Informationen über member what()  resize(i) – Änderung der Größe

12 Aufgabe 23 - Vektoren  Erstelle einen Vektor vom Typ int32 ohne die Größe anzugeben  schiebe 3 beliebige Zahlen in den Vektor  gib den Inhalt des gesamten Vektors aus  entferne das letzte Element  greife auf das 4. Element zu  fange den resultierenden Fehler ab und gib eine entsprechende Meldung aus

13 STL: Listen  doppelt verkettete Listen kein indizierter Zugriff einfaches Einfügen und Entfernen  Einbinden der Datei  Analogien zu Vektor Inhalt beliebig angebbar (Template) Iterator (list ::iterator iter;) begin(), end(), push_back(..), size,...

14 STL: Listen  insert(iterator, elem) – fügt an der Stelle iterator das Element elem ein  push_front(..)/pop_front() – Element am Anfang einfügen / löschen  erase(iterator) – Element an der Stelle iterator löschen  remove(wert) – alle Elemente mit dem Inhalt wert löschen  Teilen, Sortieren und Zusammenfügen durch splice, sort und merge

15 Aufgabe 24 - Listen  Erstelle eine Liste für int32 Werte und fülle diese mit 10 Werten zwischen 1 und 5  Entferne alle Elemente mit dem Wert 4  Ordne die Liste  Gib die Liste auf der Konsole aus

16 STL: Strings  Grundgedanke: Kapselung von (char *) zur einfachen Verwendung von Zeichenketten  basic_string Template zur Bestimmung des Typs der Zeichen Typ darf keinen benutzerdefinierten Kopier- Konstruktor besitzen  Spezielle Ausprägungen string – char als Zeichendatentyp wstring – wchar_t als Zeichendatentyp  Einbinden der Datei

17 STL: Strings  Vergleich über Operator '==' oder Methode compare(..)  Verknüpfen über Operator '+' oder Methode append(..)  Zugriff auf einzelne Zeichen über Index [] (Vorsicht, Länge!)  length() liefert die Länge des Strings  capacity() liefert den reservierten Speicher

18 STL: Strings  find(..) – ermittelt die Position eines Teilstrings  replace(..) – ersetzt einen Teilstring durch einen anderen  insert(..) – fügt einen String an beliebiger Stelle in den bereits existierenden ein  substr(..) – gibt einen Teilstring zurück

19 STL: Maps und Multimaps  Speichern eine Liste von Key-Value-Pairs map mapVarName;  Map-Element pair pairVarName;  Maps verlangen eindeutigen Schlüssel, Multimaps nicht  Einbinden der Datei  Zugriff über mapVarName[Schlüssel]  Iterator analog zu Vektoren  insert(pair) zum Einfügen eines Paares

20 STL: Maps und Multimaps  Zuweisen von Werten über pairVarName = make_pair(Schlüssel, Wert);  Zugriff auf Schlüssel über first  Zugriff auf Wert über second  find(Schlüssel) zum Suchen nach einem Schlüssel Achtung: Beim Zugriff auf einen nichtexistenten Schlüssel wird dieser angelegt  begin() und end() analog zu Vektor

21 STL: Multimaps  Schlüssel kann mehrmals in der Liste vorkommen  count(Schlüssel) ermittelt Anzahl der Elemente mit dem Schlüssel

22 Aufgabe 25 – Strings und Maps  Erstelle eine Map zur Speicherung von String (Key) – Integer (Value) – Paaren  Füge 3 Paare in die Liste ein  Greife auf ein Element zu, dessen Schlüssel nicht in der Liste vorhanden ist  Gib die komplette Map auf der Konsole aus


Herunterladen ppt "Die STL. Schreiben und Lesen von Dateien  Einbinden von  Lesen und Schreiben über stream-Objekte Streams führen Transformationen zwischen Programmobjekten."

Ähnliche Präsentationen


Google-Anzeigen