C++11 für Programmierer
eBook - ePub

C++11 für Programmierer

Den neuen Standard effektiv einsetzen

  1. 560 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

C++11 für Programmierer

Den neuen Standard effektiv einsetzen

Über dieses Buch

Dieser Leitfaden richtet sich an C++-Programmierer, die sich mit dem C++11-Standard vertraut machen möchten. Er zeigt, welche Neuerungen und Erweiterungen der Standard mit sich bringt, wie die neuen Features effizient eingesetzt werden -- und warum C++11 das bessere C++ ist. Das Buch bietet zunächst einen Überblick über die C++11-Features und zeigt dann im Detail, wie Sie die Neuerungen in Ihren Programmen einsetzen können. Behandelt werden die Kernsprache, die Multithreading-Funktionalität sowie die Verbesserungen der Standardbibliothek. Der Autor verfolgt dabei einen praxisnahen Ansatz: Zahlreiche lauffähige Beispielprogramme, die Sie herunterladen können, sollen Sie zum Ausführen und auch zum Modifizieren des Codes ermutigen. Übungsaufgaben helfen Ihnen darüber hinaus, die Theorie optimal mit der Praxis zu verbinden, damit Sie C++11 in Zukunft erfolgreich anwenden können.

Information

Verlag
O'Reilly
Jahr
2013
Auflage
1
eBook-ISBN:
9783955613938

Teil IV. Die Standardbibliothek

Kapitel 19. Neue Bibliotheken

In diesem Kapitel:
  • „Reguläre Ausdrücke“
  • „Type-Traits“
  • „Zufallszahlen“
  • „Zeitbibliothek“
  • „Referenz-Wrapper“
Mit der Bibliothek für reguläre Ausdrücke erhält C++11 ein lang vermisstes Feature, sind doch reguläre Ausdrücke das Standardwerkzeug für anspruchsvolle String-Manipulationen. Aber auch die Type-Traits-Bibliothek mit ihrer Introspektionsfähigkeit zur Übersetzungszeit, die neuen Bibliotheken zu Zufallszahlen und zur Zeit oder die praktischen Referenz-Wrapper werden bald Standardwerkzeuge des professionellen C++-Programmierers sein.

Reguläre Ausdrücke

<regex>
Bevor wir uns die Syntax der regulären Ausdrücke in C++11 genauer anschauen, zunächst ein kleines Beispiel. In Listing 19.1 wird aus einem String die E-Mail-Adresse extrahiert und analysiert.
regexEmail.cpp
01 #include <regex> 02 03 #include <iostream> 04 #include <string> 05 06 int main(){ 07 08 std::cout << std::endl; 09 10 std::string emailDescription="Email addresses, such as [email protected], have two parts."; 11 12 // regular expression for the email address 13 std::string regExprStr( R"(([\w.%+-]+)@([\w.-]+\.[a-zA-Z]{2,4}))"); 14 15 // regular expression holder 16 std::regex rgx(regExprStr); 17 18 // search result holder 19 std::smatch smatch; 20 21 // looking for a partial match 22 if (std::regex_search(emailDescription,smatch,rgx)){ 23 24 std::cout << "Text: " << emailDescription << std::endl; 25 26 std::cout << std::endl; 27 28 std::cout << "Email address: " << smatch[0] << std::endl; 29 std::cout << "Local part: " << smatch[1] << std::endl; 30 std::cout << "Domain name: " << smatch[2] << std::endl; 31 32 std::cout << std::endl; 33 34 std::cout << "Text before the email address: " << smatch.prefix() << std::endl; 35 std::cout << "Text after the email address: " << smatch.suffix() << std::endl; 36 37 } 38 39 std::cout << std::endl; 40 41 }
Listing 19.1 E-Mail-Adresse extrahieren und analysieren
Listing 19.1 verfolgt die klassischen drei Schritte beim Umgang mit regulären Ausdrücken in C++11:
  1. Erklären Sie den regulären Ausdruck (Zeile 16, regExprStr).
  2. Halten Sie das Ergebnis der Suche (Zeile 19, rgx).
  3. Verarbeiten Sie das Suchergebnis weiter (Zeilen 22 bis 37).
Abbildung 19.1 zeigt die Ausgabe von Listing 19.1.
Eine E-Mail-Adresse, aus Text mit regulären Ausdrücken extrahiert
Abbildung 19.1 Eine E-Mail-Adresse, aus Text mit regulären Ausdrücken extrahiert
Aus dem Text emailDescription in Zeile 10 wird mithilfe des regulären Ausdrucks regExprStr die E-Mail-Adresse herausgefiltert und für die Auswertung zur Verfügung gestellt. In den Zeilen 22 bis 37 folgt die Auswertung. smatch[0] (Zeile 28) stellt die ganze E-Mail-Adresse, smatch[1] die erste Erfassungsgruppe (capture group) und smatch[2] (Zeile 30) die zweite Erfassungsgruppe zur Verfügung. Die erste Erfassungsgruppe ist der lokale Anteil, die zweite Erfassungsgruppe ist der Domänenanteil der E-Mail-Adresse. Mit smatch.prefix() bzw. smatch.suffix() (Zeilen 34 und 35) kann der Text vor bzw. nach der E-Mail referenziert und ausgegeben werden.
Raw-String-Literale
Für wen reguläre Ausdrücke nicht zum täglichen Brot gehören (den Autor eingeschlossen), für den ist der Ausdruck R"(([\w.%+-]+)@([\w.-]+\.[a-zA-Z]{2,4}))" in Zeile 13 nur schwer verdaulich. Bevor wir uns die Syntax genauer anschauen, noch eine kleine Bemerkung. Durch R"(...)" wird ein Raw-String-Literal in C++11 erklärt. Damit ist es nicht mehr nötig, die Backslash-Zeichen »\« im regulären Ausdruck durch einen vorangestellten zweiten Backslash »\« zu maskieren. Das äquivalente String-Literal "([\\w.%+-]+)@([\\w.-]+\\.[a-zA-Z] {2,4})" ist da schon schwieriger zu lesen.

Syntax der regulären Ausdrücke

Reguläre Ausdrücke lassen sich in C++11 in sechs verschiedenen Grammatiken spezifizieren.
  1. ECMAScript, sehr ähnlich zu Perl 5
  2. basic, POSIX Standard Basic Regular Expressions
  3. extended, POSIX Standard Extended Regular Expressions
  4. awk, POSIX Standard awk
  5. gr...

Inhaltsverzeichnis

  1. Cover
  2. C++11 für Programmierer
  3. Inhaltsverzeichnis
  4. Einführung
  5. I. Tour de C++11
  6. II. Kernsprache
  7. III. Multithreading
  8. IV. Die Standardbibliothek
  9. V. Ausblick
  10. VI. Anhang
  11. H. Über den Autor
  12. Stichwortverzeichnis
  13. Kolophon
  14. Impressum

375,005 Studierende vertrauen auf uns

Zugang zu über 1,5 Millionen Titeln zu einem fairen monatlichen Preis.

Mit unseren Lerntools kannst du noch effizienter lernen.

Häufig gestellte Fragen

Ja, du kannst dein Abo jederzeit über den Tab Abo in deinen Kontoeinstellungen auf der Perlego-Website kündigen. Dein Abo bleibt bis zum Ende deines aktuellen Abrechnungszeitraums aktiv. Erfahre, wie du dein Abo kündigen kannst
Nein, Bücher können nicht als externe Dateien, z. B. PDFs, zur Verwendung außerhalb von Perlego heruntergeladen werden. Du kannst jedoch Bücher in der Perlego-App herunterladen, um sie offline auf deinem Smartphone oder Tablet zu lesen. Erfahre, wie du Bücher herunterladen kannst, um sie offline zu lesen
Wir sind ein Online-Lehrbuch-Abonnement-Service, bei dem du für weniger als den Preis eines einzelnen Buchs pro Monat Zugriff auf eine gesamte Online-Bibliothek erhältst. Bei über 1,5 Millionen Büchern zu mehr als 990 Themen bist du bestens versorgt! Erfahre mehr über unsere Mission
Achte auf das Symbol zum Vorlesen bei deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Erfahre mehr über die Funktion „Vorlesen“
Ja! Du kannst die Perlego-App sowohl auf iOS- als auch auf Android-Geräten nutzen, damit du jederzeit und überall lesen kannst – sogar offline. Perfekt für den Weg zur Arbeit oder wenn du unterwegs bist.
Bitte beachte, dass wir Geräte, auf denen die Betriebssysteme iOS 13 und Android 7 oder noch ältere Versionen ausgeführt werden, nicht unterstützen können. Mehr über die Verwendung der App erfahren
Ja, du kannst auf C++11 für Programmierer von Rainer Grimm im PDF- und/oder ePUB-Format sowie auf andere beliebte Bücher in Informatik & Programmierung in C++ zugreifen. In unserem Katalog stehen über 1,5 Millionen Bücher zur Verfügung.