Die C++ Standard Template Library Andreas Obrist
|
|
- Christoph Bieber
- vor 6 Jahren
- Abrufe
Transkript
1 Die C++ Standard Template Library Andreas Obrist
2 Was dürft Ihr erwarten? 1. Teil Das Wichtigste in Kürze über die Standard Template Library 2. Teil Praktische Beispiele Was dürft Ihr nicht erwarten? 1. Teil Einführung in C++, Programmierkurs STL 2. Teil Komplexe Algorithmen, saubere Programme
3 In C: #include <stdlib.h> #include <iostream.h> inline int cmp (const void *a, const void *b) { int aa = *(int *)a; int bb = *(int *)b; return (aa < bb)? -1 : (aa > bb)? 1 : 0; } void main (int argc, char *argv[]) { const int size = 1000; int array [size]; int n = 0; while (cin >> array[n++]); n--; qsort (array, n, sizeof(int), cmp); In C++ (mit STL): #include <string.h> #include <algo.h> #include <vector.h> #include <stdlib.h> #include <iostream.h> void main () { vector<int> v; int input; while (cin >> input) v.push_back (input); sort(v.begin(), v.end()); int n = v.size(); } for (int i = 0; i < n; i++) cout << array[i] << "\n"; } for (int i = 0; i < n; i++) cout << v[i] << "\n";
4 Was ist die Standard Template Library? Die Standard Template Library (STL) ist eine C++ Bibliothek. Sie besteht aus Containern (container classes) Algorithmen (algorithms) Iteratoren (iterators) Sie deckt einen Grossteil der wichtigsten Algorithmen und Datenstrukturen ab. Beispiele: Algorithmen für Sortieren und Suchen, Dynamische Speicherverwaltung!! Und das für eine Vielzahl von Datentypen!!
5 Eine Vielzahl von Datentypen? Ja, denn: Ein Container kann gefüllt werden mit: int, char, char*, double, struct, class,... Beispiele: vector<char> Char_Vect; vector<int> Int_Vect; struct Punkt { float x; float y; float z; }; vector<punkt> Punkte;
6 Schön, aber was ist ein Container? Objekt Objekt Objekt Container
7 Die wichtigsten Container vector vector<char> vector<char *> vector<int>... list list<char> list<char *> list<int>... set list<char> list<char *> list<int>...
8 Der Container vector #include <vector> DER Container schlechthin. + Random access der Elemente + Ansetzten am Ende ist unabhängig von der Anzahl (am Anfang / in der Mitte linear von der Anzahl) Beispiel: Deklaration: vector<int> Int_Vec; Einfügen: Int_Vec.push_back( 3 ); Löschen: Anzahl: Int_Vec.pop_back(); Int_vec.clear(); int n = Int_Vec.size(); Auslesen: int i = Int_Vec[ n ];
9 Der Container list #include <list> Eine doppelt verlinkten Liste. + Das zeitliche Verhalten von Einfügen und Löschen von Elementen am Ende, am Anfang oder in der Mitte ist unabhängig von der Anzahl - Kein random access mehr Beispiele: Deklaration: list<float> L; Einfügen: L.push_back( ); L.insert( L.begin()+10, ); Löschen: L.pop_front(); L.erase(L.begin()+10) Auslesen: float f = L[ n ];
10 Der Container set #include <set> Eine Menge. + Die Elemente sind automatisch aufsteigend sortiert + Es gibt keine doppelten Elemente - Kein random access mehr Beispiele: Deklaration: Einfügen: set <int, less<int>> intset; intset.insert(j); Löschen: intset.erase(intset.begin() + 5); Anzahl: int n = intset.size();
11 vector, list, set... Was wann? Vector: + schneller Zugriff auf beliebiges Element - Einfügen an beliebiger Stelle List + Einfügen / Löschen an beliebiger Stelle - Zugriff auf beliebiges Element Set + Geordnete Unikate - Geordnete Unikate
12 Zusätzlich: Klasse string #include <string> Vereinfacht den Gebrauch von Strings + Suchfunktionen eingebaut + Einfaches Definieren (string s = Hallo ;) + Intuitives Verknüpfen (string2 += string1;) + Random access (char c = string[1]) Beispiele: Deklaration: string s1, s2, s3; Definieren: s1 = Hallo ; s2 = LUG-AG Verknüpfen: s3 = s1 + + s2; Suchen: size_t n = s3.find( G );
13 Die Algorithmen Sammlung von elementaren Algorithmen für: Sortieren, Umkehren, Suchen, Ersetzen,... für viele Datentypen (und Container!)
14 Beispiele, bitte! sort() #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> V; for(int i = 10; i >= 0; i--) { V.push_back(i); cout << V[10-i] << " "; } cout << endl; sort(v.begin(), V.end()); } for(i = 0; i <= 10; i++) cout << V[i] << " "; cout << endl; return 0; Ergibt:
15 Beispiele, bitte! binary_search() #include <algorithm> int ia[] = {29, 23, 20, 22, 17, 26, 26, 51}; sort( &ia[0], ia[7] ); // Muss sortiert sein! bool gefunden = binary_search( &ia[0], ia[7] ); next_permutation() Aus musil wird ilmsu, ilmus, ilsmu, ilsum,... partial_sort(first, middle, last) Sortiert ein Objekt (Container, Array) ab first bis middle max_element() Sucht das grösste Element in einer Folge
16 Aber Achtung! Anwendung nur für Standardtypen (int, float,...) einfach! Komplexe Typen (Punkt, ganze Klassen,...) erfordern eigene Vergleichsfunktionen (siehe im Beispiel 5 später)
17 Last but not least: Iteratoren Zeiger auf die Elemente eines Containers. Deklaration: container<type>::iterator name; Beispiel list<string>::iterator stringit; Zweck: Adressierung in nicht-linearen Containern.
18 Last but not least: Iteratoren Beispiel: Ein Punkt definieren struct Punkt { float x, y, z }; Ein Punktvektor vect<punkt> Punkte; Der Iterator vect<int>::iterator Punktit; Der 1. Punkt Punktit = Punkte.begin(); Die weiteren Punkte ++Punktit;
19 Praktische Beipiele 1. Doppelte Punkte finden mit Container set 2. On the run -Sortierung einer Eingabe mit set 3. Sortieren einer Zahlenfolge mit sort 4. Binäre Suche mit bsearch 5. Anpassen eines Algorithmus 6. Gebrauch eines Iterators 7. Scrabble-Hilfe
20 Wer mehr wissen will: Buch: C++ Primer Stanley B. Lippman, Josée Lajoie, Addison-Wesley Gute Einführung in C++ und damit in die STL Webseite: Erklärt die STL und war Basis dieses Vortrags Lehrreiche Beispiele aus einem Buch Die Folien und Beispiele unter
Hier wird die Verwendung der Standard Template Library (kurz STL) kurz beschrieben. Inhalt 1.Verwendung der STL Grundlagen...
STL Die C++ Bibliothek ist eine Sammlung von standardisierten Klassen und Containern. Zu beachten ist, dass nicht jede C++ Implementierung den ganzen Umfang der Standardbibliothek realisiert hat. Hier
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrEinführung in die STL
1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung
MehrComputergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,
MehrMapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.
Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien
MehrC++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16
C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming
MehrC++ Teil 8. Sven Groß. 5. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 8 5. Dez / 16
C++ Teil 8 Sven Groß IGPM, RWTH Aachen 5. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 8 5. Dez 2014 1 / 16 Themen der letzten Vorlesung Casts bei Zeigern dynamische Speicherverwaltung Vektoren Typedefs
MehrEinführung in die STL
Einführung in die STL Fimberger Lucia lfimberg@cosy.sbg.ac.at Nidetzky Marion mnidetzk@cosy.sbg.ac.at Was ist die STL? Abkürzung für Standard Template Library Eine generische Bibliothek Ist kaum objektorientiert,
MehrMapra: C++ Teil 4. Felix Gruber, Michael Rom. 24. Mai 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 4 24.
Mapra: C++ Teil 4 Felix Gruber, Michael Rom IGPM 24. Mai 2016 Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 4 24. Mai 2016 1 / 25 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien
MehrProgrammierkurs. Steffen Müthing. November 16, Interdisciplinary Center for Scientific Computing, Heidelberg University
Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University November 16, 2018 Standardbibliothek Datenstrukturen Algorithmen Variablen und Referenzen Aufrufkonventionen
MehrProgrammierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
MehrC++ Kurs Teil 3. Standard Template Library (STL) Kommunikation mit der shell Hyper Text Markup Language (HTML)
C++ Kurs Teil 3 Standard Template Library (STL) Übersicht vector algorithm: sort, for_each map Kommunikation mit der shell Hyper Text Markup Language (HTML) O. Ronneberger: C++ Kurs Teil 3 Seite 1
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrC++ - Einführung in die Programmiersprache Standard Templates. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Standard Templates Leibniz Universität IT Services Anja Aue C++ - Standardbibliothek Standardisierte Sammlung von häufig vorkommenden Funktionen und Klassen.
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrEinführung in die Nutzung der C++ - Standard - Bibliothek
Einführung in die Nutzung der C++ - Standard - Bibliothek Literatur: (Amme) - Ammeraal, L.: STL for C++-Programmers; Chichester: Wiley, 1997 (Brey) - Breymann, U.: Die C++ Standard Template Library; München:
Mehr5.6 Spezielle Liste: Stack
5.6 Spezielle Liste: Stack Ein Stack (auch Keller, Stapel, Kellerstapel) ist eine sequenzielle Struktur von Objekten gleichen Typs, bei der die Operationen Einfügen und Löschen nur an einem Ende möglich
MehrBenutzerdefinierte und zusammengesetzte Datentypen
- Aufzählungstypen - Felder: Der C++-Standardtyp vector - Zeichenketten: Der C++-Standardtyp string - Strukturierte Datentypen Strukturen Unions Bitfelder Programmieren in C++ Informatik FH Trier C++06-1
MehrC++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18
C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
Mehr4. Strukturen und Algorithmen
4. Strukturen und Algorithmen Datenstrukturen sind organisierte Sammlungen von Daten identischen Typs. Organisiert wird die Anordnung der Daten und der Zugriff darauf, sowie Möglichkeiten zur Manipulation.
MehrThemen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente
Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden
MehrÜbung HP Codes zu Aufgabe 11:
Lexikon.cpp: /*Autor: Nicola Greth * Uebung 11 * Lexikon.cpp */ #include "LexikonArray.hpp" #include "LexikonVector.hpp" #include "LexikonList.hpp" #include "LexikonDeque.hpp" #include "LexikonSet.hpp"
MehrC++ Standardbibliothek
C++ Standardbibliothek Zu jedem Compiler gibt es eine Bibliothek mit nützlichen Klassen und Routinen. Die C++ Standardbibliothek (standard library) stellt ein erweiterbares Rahmenwerk mit folgenden Komponenten
MehrProbeklausur. Musterlösung
Programmierkurs Probeklausur Dr. Steffen Müthing Abgabe 08. Februar 2019 IWR, Universität Heidelberg ipk-exercises:2018-ws-55-gc187ae0 Allgemeine Hinweise: Probeklausur Dieses Übungsblatt wird nicht bewertet.
MehrC++ für Wissenschaftliches Rechnen
C++ für Wissenschaftliches Rechnen Dan Popović Interdisziplinäres Institut für Wissenschaftliches Rechnen, Universät Heidelberg 13. Oktober 2009 Dan Popović (IWR, Heidelberg) C++ für Wissenschaftliches
MehrC++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14
C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik
MehrRelationen-Algebra und Persistenz Teil I
Relationen-Algebra und Persistenz Teil I Implementierungskonzepte und Anforderungen an Attributdatentypen LG Datenbanksysteme für neue Anwendungen Inhalt Flobs DbArrays Attributsdatentypen Folie 2 Bisher:
MehrEinleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
Mehr5. Behälter und Iteratoren. Programmieren in C++ Überblick. 5.1 Einleitung. Programmieren in C++ Überblick: 5. Behälter und Iteratoren
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrProgrammieren in C++ Überblick
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrRelationen-Algebra und Persistenz Teil I
Relationen-Algebra und Persistenz Teil I Implementierungskonzepte und Anforderungen an Attributdatentypen LG Datenbanksysteme für neue Anwendungen Inhalt Flobs DbArrays Attributsdatentypen Folie 2 Bisher:
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 13. Klassenbibliotheken Klassenbibliotheken Seite 2 Sammlung von Algorithmen und Klassen in Klassenbibliotheken: Konzept:
MehrC-Arrays vs. C++-Container
C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des
MehrNumerische Methoden und Algorithmen in der Physik
Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 06.11.2008 Numerische Methoden und Algorithmen in der Physik Christian Autermann 1/ 40 Einführung Datenfelder Sortieralgorithmen
MehrPraxisorientierte Einführung in C++ (Variadische Funktionen)
Praxisorientierte Einführung in C++ (Variadische Funktionen) Christoph Elbrechter, Florian Paul Schmidt Universität Bielefeld April 12, 2012 Christoph Elbrechter, Florian Paul Schmidt Praxisorientierte
MehrEntwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!
Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:
MehrProgrammieren - C++ Templates
Programmieren - C++ Templates Reiner Nitsch 8471 reiner.nitsch@h-da.de Was sind Funktionstemplates? C++ unterscheidet zwischen Funktionstemplates (dieses Kapitel) und Klassentemplates (später). Funktionstemplates
MehrC++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13
C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)
Mehr19. STL Container Programmieren / Algorithmen und Datenstrukturen 2
19. STL Container Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen STL Container: Übersicht
MehrProgrammieren - C++ Funktions-Templates
Programmieren - C++ Funktions-Templates Reiner Nitsch 8471 r.nitsch@fbi.h-da.de Was sind Templates? C++ Templates ermöglichen generische Programmierung. Das ist Programmierung unabhängig vom speziellen
Mehr9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
MehrProgrammieren - C++ Templates
Programmieren - C++ Templates Reiner Nitsch r.nitsch@fbi.h-da.de Was sind Templates? C++ Templates ermöglichen generische Programmierung. Das ist Programmierung unabhängig vom speziellen Objekt-Typ Templates
MehrStandardbibliotheken. Datentyp bool. Eingaben 2/2. Eingaben 1/2. In C gibt es keinen logischen Datentyp
Datentyp bool Standardbibliotheken Ein- und Ausgabe Vektoren Container In C gibt es keinen logischen Datentyp Abhilfe schafft Interpretation 0 == false 1 == true Das könnte so aussehen: #define false 0
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrEin kleiner Blick auf die generische Programmierung
TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen
MehrRelationen-Algebra und Persistenz Teil I
Relationen-Algebra und Persistenz Teil I Implementierungskonzepte und Anforderungen an Attributdatentypen LG Datenbanksysteme für neue Anwendungen Inhalt FLOBs DBArrays Attributsdatentypen Folie 2 Bisher:
MehrEinführung in die Programmierung Wintersemester 2018/19
Einführung in die Programmierung Wintersemester 2018/19 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : STL Inhalt Überblick über die Standard Template
MehrÜbung HP Angabe: #include <iostream> #include <vector> #include <locale>
Aufgabe 1: Schreiben Sie ein C++ Programm, das die eigene Klasse Words definiert. Die Idee ist, dass diese Klasse in einem wstring Vector alle Wörter eines Textes speichert. In Ihrem private Bereich soll
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrMapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11
Mapra: C++ Teil 2 Felix Gruber, Sven Groß IGPM 2. Mai 2017 Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai 2017 1 / 11 Themen vom letzten Mal Kontrollstrukturen Funktionen const Referenzen Zeiger
MehrKapitel 13. Definition von Klassen. OOP Thomas Klinker 1
Kapitel 13 Definition von Klassen OOP Thomas Klinker 1 OOP Thomas Klinker 2 Datenabstraktion Der Mensch abstrahiert, um komplexe Sachverhalte darzustellen. Dinge und Vorgänge werden auf das wesentliche
MehrC++-Crashkurs. Jan Rosendahl, Jan-Thorsten Peter, Andreas Guta
C++-Crashkurs Jan Rosendahl, Jan-Thorsten Peter, Andreas Guta {rosendahl,peter,guta@i6.informatik.rwth-aachen.de Softwareprojektpraktikum Maschinelle Übersetzung SS 2017 Human Language Technology and Pattern
MehrTeil 8: Dynamische Speicherverwaltung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden
Teil 8: Dynamische Speicherverwaltung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 8 Dynamische Speicherverwaltung... 3 8.1
MehrC++ Teil 7. Sven Groß. 26. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 18
C++ Teil 7 Sven Groß IGPM, RWTH Aachen 26. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 26. Nov 2014 1 / 18 Themen der letzten Vorlesung Referenzen Zeiger Felder dynamische Speicherverwaltung Sven
MehrInoffizielle Lösung zur Informatik I Prüfung Frühlingssemester 2010 Freitag, 13. August May 23, 2011
Inoffizielle Lösung zur Informatik I Prüfung Frühlingssemester 2010 Freitag, 13. August 2010 May 23, 2011 Informatik I, FS 2010, 1. Vordiplom Aufgabe 3 double sqrt(double s) double x_old,x_new; x_n initalisieren
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrSortieren durch Mischen (Mergesort; John von Neumann 1945)
Sortieren durch Mischen (Mergesort; John von Neumann 1945) Gegeben folgendes Feld der Größe 10. 3 8 9 11 18 1 7 10 22 32 Die beiden "Hälften" sind hier bereits vorsortiert! Wir können das Feld sortieren,
MehrZeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
MehrContainer usw. C++ Übung am 23. Juni 2016
Container usw. C++ Übung am 23. Juni 2016 Pairs std::pair std::pair emptypair; std::pair mypair("text",3.14f); std::pair copypair(mypair); std::pair
MehrMapra: C++ Teil 5. Felix Gruber, Sven Groß. 16. Mai IGPM, RWTH Aachen. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 5 16.
Mapra: C++ Teil 5 Felix Gruber, Sven Groß IGPM, RWTH Aachen 16. Mai 2017 Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 5 16. Mai 2017 1 / 17 Was bisher geschah Makefiles Funktionen-Templates Ein-/Ausgabe
MehrRepetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatorüberladung 2 Pointer Zeigervariable 3 CopyConstructor 4 Listen 5 Array String 6 STL Container
MehrKlausur Informatik WS 2012/13
Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen
MehrZusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
MehrObjektorientierte Anwendungsentwicklung
Name, Vorname Matrikelnummer Klausur zur Vorlesung Objektorientierte Anwendungsentwicklung Krefeld, 16. März 2012 Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt. Die Aufgabenstellung
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 1
3D Programmierpraktikum: Einführung in C++ - Teil 1 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 27. April 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Zeigern, sowie Records und Funktionen Aufgabe 5: Diese Aufgabe basiert auf der Aufgabe 4. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher
MehrProgrammierkurs. SoSe 2013. Markus Geveler Inst. f. Applied Mathematics, TU Dortmund. markus.geveler@math.tu-dortmund.de
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 8 Was machen wir heute hier? mehr zu pointern und Speicher mehr zu pointern
MehrU8 7. Übung U8 7. Übung
U8 7. Übung U8 7. Übung Dynamische Speicherverwaltung Generisches Sortieren Aufgabe 7 U8.1 U8-1 Dynamische Speicherverwaltung U8-1 Dynamische Speicherverwaltung Erzeugen von Feldern der Länge n: mittels:
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse
MehrObjektorientierte Programmierung
2.1. Gliederung Kapitel 2 Objektorientierte Programmierung Standardbibliothek: Strings, Container, Streams Definition von neuen Klassen Konstruktoren, Destruktoren Vererbung Folie 1 2.2. Standardbibliothek
MehrC++ für Wissenschaftliches Rechnen
C++ für Wissenschaftliches Rechnen Dan Popović Interdisziplinäres Institut für Wissenschaftliches Rechnen, Universät Heidelberg 18. April 2011 C++ für Wissenschaftliches Rechnen 1 Warum C++? Motivation
MehrKlausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Mehrfloat *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses
Zeiger auf Funktionen 1 Zeiger als Funktionswert... 1 2 "Zeiger als Funktionswert" versus "Zeiger auf eine Funktion"... 2 2.1 Das Beispiel zu Zeiger auf eine Funktion veranschaulicht den Sachverhalt...
MehrFortgeschrittene C++-Programmierung
Vorlesung: "Fortgeschrittene C++-Programmierung" 16.04.2009 Fortgeschrittene C++-Programmierung SS 2009 Teil 4 Sandro Andreotti- andreott@inf.fu-berlin.de 1 Vorlesung: "Fortgeschrittene C++-Programmierung"
MehrC-Arrays vs. C++-Container
C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Wer
MehrBildverarbeitung mit C++
Bildverarbeitung mit C++ Lösung zum Übungsblatt 1 Dr. Stefan Florczyk 2003 // Aufgabe 2 #include #include double factorial(double d) double erg = 1; for (int i = 1; i
Mehr5. Strukturen und Algorithmen
5. Strukturen und Algorithmen Struktur 5.1 Modellierung allgemein Element Kabel1 Lampe Kabel2 Objekte der Struktur Struktur -> Klasse Element -> Klasse Datenstruktur Dr. Norbert Spangler / Grundlagen der
MehrGran Turismo Cars - WS 11/12
WS 2011/2012 Stephan Gimbel Repetitorium PAD 1+2 Übungsblatt Gran Turismo Cars - WS 11/12 Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem
MehrAbgeleitete Datentypen
Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Felder (Arrays) Zeichenketten (Strings) Strukturen (Structs) union, enum & typedef Arrays Ein Array ist ein Datentyp, der
MehrÜbung Notendarstellung
Übung Notendarstellung Einführung Unsere Zeichenfläche hat einige Erweiterungen erfahren, die wir heute nutzen wollen um eine Notendarstellung zu erhalten. Insbesondere hat gibt es nun die Möglichkeit
MehrObjektorientierte Programmierung
2.1. Gliederung Kapitel 2 Objektorientierte Programmierung Standardbibliothek: Strings, Container, Streams Definition von neuen Klassen Konstruktoren, Destruktoren Vererbung Folie 1 2.2. Standardbibliothek
Mehrvirtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };
C++ für Anfänger des Programmierens Rieckeheer GSO-Hochschule Nürnberg März 2008 174 a neu Vor Kapitel 24 ist folgender Text einzufügen. Das folgende Programm variiert das Programm VIRTfunktion3.cpp und
Mehr5. Abgeleitete Datentypen
5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist
Mehr5. Abgeleitete Datentypen
5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrOrganisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung!
Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Nächste Woche keine Vorlesung! Es
MehrDAP2 Praktikum Blatt 1
Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1
Mehr