دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [2 ed.]
نویسندگان: Richard Kaiser
سری: Xpert.press
ISBN (شابک) : 3662652560, 9783662652565
ناشر: Springer Vieweg
سال نشر: 2022
تعداد صفحات: 1018
[1007]
زبان: German
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 12 Mb
در صورت تبدیل فایل کتاب C++ mit Visual Studio 2022 und Windows Forms-Anwendungen: C++17 für Studierende und erfahrene Programmierer – Windows-Programme mit C++ entwickeln به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب ++C با برنامه های Visual Studio 2022 و Windows Forms: C++17 برای دانش آموزان و برنامه نویسان با تجربه - برنامه های ویندوز را با C++ توسعه دهید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این کتاب C را به طور جامع ارائه میکند. مثالهای متعددی این نظریه را نشان میدهد. نوآوری های C 11، C 14 و C 17 از همان ابتدا یکپارچه شده اند و مزایای آنها نشان داده شده است. بر خلاف اکثر کتاب های دیگر C، برنامه های ویندوز با یک رابط کاربری گرافیکی توسعه یافته اند.
این کتاب یک کتاب درسی است که برای دانشجویان و دانشجویان در نظر گرفته شده است. از آنجایی که نیازی به دانش قبلی نیست، برای خودآموزی نیز مناسب است. این از سخنرانی ها و سمینارهای شرکتی متعدد ناشی شد. ساختار، مثال ها و تمرین ها امتحان شده و آزمایش شده است.
و همچنین یک کتاب مرجع است که برنامه نویسان با تجربه C را با C 17 به روز می کند. این نشان می دهد که چگونه نوآوری های متعدد حتی تکنیک های برنامه نویسی ابتدایی را آسان تر و ایمن تر می کند. همچنین مفاهیم جدیدی وجود دارد که راه حل های بهتر و کارآمدتری را نسبت به چند سال پیش ممکن می سازد. بسیاری از این امکانات جدید هنوز در عمل صنعتی گسترده نشدهاند.
تمرینها خواننده را قادر میسازد تا آموختههای خود را عمیقتر کند. راه حل ها برای دانلود در www.rkaiser.de موجود است.
این کتاب در دو نسخه تقریباً یکسان منتشر شده است:
• در ویرایش حاضر برنامه ها با رابط کاربری گرافیکی نوشته شده اند که تمامی ورودی ها و خروجی ها از طریق رابط کاربری ویندوز صورت می گیرد.
• در نسخه دیگر "C with Visual Studio 2019" (ISBN 978-3-662-594759) برنامه های C بدون رابط کاربری گرافیکی نوشته می شوند. همه ورودی ها و خروجی ها با cin و cout روی کنسول انجام می شود.
Dieses Buch stellt C++ umfassend dar. Zahlreiche Beispiele veranschaulichen die Theorie. Dabei werden die Neuerungen von C++11, C++14 und C++17 von Anfang an integriert und ihre Vorteile gezeigt. Im Unterschied zu den allermeisten anderen C++-Büchern werden Windows-Programme mit einer grafischen Benutzeroberfläche entwickelt.
Dieses Buch ist ein Lehrbuch, das sich an Studenten von Fachhochschulen und Universitäten richtet. Da es keine Vorkenntnisse voraussetzt, ist es auch zum Selbststudium geeignet. Es entstand aus zahlreichen Vorlesungen und Firmenseminaren. Der Aufbau, die Beispiele und Übungsaufgaben sind erprobt und bewährt.
Und es ist gleichzeitig auch ein Fachbuch, das erfahrene C++-Programmierer auf den Stand von C++17 bringt. Es zeigt, wie die zahlreichen Neuerungen selbst elementare Programmiertechniken einfacher und sicherer machen. Dazu kommen neue Konzepte, die bessere und effizientere Lösungen als noch vor einigen Jahren ermöglichen. Viele dieser neuen Möglichkeiten sind in der industriellen Praxis noch nicht verbreitet.
Übungsaufgaben ermöglichen dem Leser, das Gelernte zu vertiefen. Lösungen stehen auf www.rkaiser.de zum Download bereit.
Dieses Buch erscheint in zwei weitgehend identischen Ausgaben:
• In der vorliegenden Ausgabe werden Programme mit einer grafischen Benutzeroberfläche geschrieben, in denen alle Ein- und Aus-gaben über eine Windows-Benutzeroberfläche erfolgen.
• In der anderen Ausgabe „C++ mit Visual Studio 2019“ (ISBN 978-3-662-594759) werden C++-Programme ohne eine grafische Benutzeroberfläche geschrieben. Alle Ein- und Ausgaben erfolgen mit cin und cout über die Konsole.
Vorwort Inhalt 1 Die Entwicklungsumgebung 1.1 Windows Forms Projekte mit C++ 1.1.1 Installation von Visual Studio für Windows Forms Projekte 1.1.2 Installation der Visual Studio Erweiterung für Windows Forms Projekte 1.1.3 Ein Windows Forms Projekt erstellen 1.1.4 Probleme beim Erstellen eines Windows Forms Projekts Ө 1.1.5 Ein Windows Forms Projekt manuell erstellen Ө 1.1.6 Projektvorlagen exportieren 1.2 Visuelle Programmierung: Ein erstes kleines Programm 1.3 Das Eigenschaftenfenster 1.4 Erste Schritte in C++ 1.5 Der Quelltexteditor 1.5.1 Tastenkombinationen 1.5.2 Intellisense 1.5.3 Die Formatierung des Quelltexts 1.5.4 Definitionen einsehen 1.5.5 Symbole suchen 1.5.6 Namen umbenennen 1.5.7 Zeichenfolgen suchen und ersetzen 1.6 Kontextmenüs und Symbolleisten 1.7 Einige Tipps zur Arbeit mit Projekten 1.8 Online-Dokumentation 1.8.1 Die Microsoft-Dokumentation 1.8.2 en.cppreference.com 1.9 Projekte und der Projektmappen-Explorer 1.9.1 Projekte, Projektdateien und Projektoptionen 1.9.2 Projektmappen und der Projektmappen-Explorer 1.10 Weiterführende Möglichkeiten Ө 1.10.1 Navigieren 1.10.2 Code-Ausschnitte 1.10.3 Aufgabenliste 1.10.4 Der Objektkatalog und die Klassenansicht Ө 1.10.5 Die Fenster von Visual Studio anordnen Ө 1.10.6 Einstellungen für den Editor Ө 1.11 Hilfsmittel zur Gestaltung von Formularen 1.12 Windows Forms Anwendungen auf anderen Rechnern ausführen 2 Steuerelemente für die Benutzeroberfläche 2.1 Namen 2.2 Labels, Datentypen und Compiler-Fehlermeldungen 2.3 Funktionen, Methoden und das Steuerelement TextBox 2.3.1 Funktionen 2.3.2 Mehrzeilige TextBoxen 2.4 Klassen, ListBox und ComboBox 2.5 Buttons und Ereignisse 2.5.1 Parameter der Ereignisbehandlungsroutinen 2.5.2 Der Fokus und die Tabulatorreihenfolge 2.5.3 Eventhandler verwalten 2.6 CheckBoxen, RadioButtons und einfache if-Anweisungen 2.7 Container-Steuerelemente: GroupBox, Panel, TabControl 2.8 Hauptmenüs und Kontextmenüs 2.8.1 Hauptmenüs und der Menüdesigner 2.8.2 Kontextmenüs 2.9 Standarddialoge 2.10 Einfache Meldungen mit MessageBox::Show anzeigen 2.11 Eine Vorlage für viele Projekte und Übungsaufgaben 2.11.1 Die Erweiterung „C++ Windows Forms Project with GUI for VS 2022“ 2.11.2 CppCLR_Utils und SimpleUnittests 3 Elementare Datentypen und Anweisungen 3.1 Syntaxregeln 3.2 Variablen und Bezeichner 3.3 Ganzzahldatentypen 3.3.1 Die interne Darstellung von Ganzzahlwerten 3.3.2 Ganzzahlliterale und ihr Datentyp 3.3.3 Typ-Inferenz: Implizite Typzuweisungen mit auto 3.3.4 Initialisierungslisten und Konversionen 3.3.5 Zuweisungen und Standardkonversionen bei Ganzzahlausdrücken Ө 3.3.6 Operatoren und die „üblichen arithmetischen Konversionen“ 3.3.7 Die Datentypen char und wchar_t 3.3.8 Der Datentyp bool 3.3.9 Ganzzahlwerte bei Formularanwendungen ein- und ausgeben 3.4 Kontrollstrukturen und Funktionen 3.4.1 Die if- und die Verbundanweisung 3.4.2 Die for- und die while-Schleife 3.4.3 Funktionen und der Datentyp void 3.4.4 Eine kleine Anleitung zum Erarbeiten der Lösungen 3.4.5 Wert- und Referenzparameter 3.4.6 Die Verwendung von Bibliotheken und Namensbereichen 3.4.7 Zufallszahlen 3.4.8 Default-Argumente 3.4.9 if und switch mit Variablendefinitionen 3.4.10 Programmierstil für Funktionen 3.4.11 Rekursive Funktionen 3.4.12 Die switch-Anweisung Ө 3.4.13 Die do-Anweisung Ө 3.4.14 Bedingte Kompilation mit if constexpr Ө 3.4.15 Die Sprunganweisungen goto, break und continue Ө 3.4.16 Assembler-Anweisungen Ө 3.5 Gleitkommadatentypen 3.5.1 Die interne Darstellung von Gleitkommawerten 3.5.2 Der Datentyp von Gleitkommaliteralen 3.5.3 Standardkonversionen 3.5.4 Mathematische Funktionen 3.5.5 Gleitkommawerte bei Formularanwendungen ein- und ausgeben 3.6 Der Debugger, Tests und Ablaufprotokolle 3.6.1 Der Debugger 3.6.2 Meldungen in Ausgabefenster/Konsolenfenster 3.6.3 Der Debugger – Weitere Möglichkeiten Ө 3.6.4 CPU Auslastung beobachten mit dem Leistungs-Profiler Ө 3.6.5 Speicherauslastung beobachten mit dem Leistungs-Profiler Ө 3.6.6 Systematisches Testen 3.6.7 Unittests: Funktionen, die Funktionen testen 3.6.8 Ablaufprotokolle 3.6.9 Symbolische Ablaufprotokolle 3.7 Konstanten 3.7.1 Laufzeitkonstanten mit const 3.7.2 Compilezeit-Konstanten mit constexpr 3.7.3 constexpr Funktionen 3.7.4 static_assert und Unittests zur Compilezeit 3.8 Kommentare 3.8.1 Kommentare zur internen Dokumentation 3.8.2 Intellisense-- und Doxygen Kommentare 3.9 Exception-Handling Grundlagen: try, catch und throw 3.10 Namensbereiche – Grundlagen 3.10.1 .Net-Elemente in Header-Dateien ansprechen Ө 3.11 Präprozessoranweisungen 3.11.1 Die #include-Anweisung 3.11.2 Makros Ө 3.11.3 Bedingte Kompilation 3.11.4 Pragmas Ө 3.12 Attribute 4 Die Stringklassen: string, wstring usw. 4.1 Die Definition von Variablen eines Klassentyps 4.2 Strings mit .NET Steuerelementen anzeigen und einlesen 4.3 Einige Elementfunktionen der Klasse string 4.4 Raw-String-Literale (Rohzeichenfolgen) 4.5 Stringkonversionen 4.5.1 C++11-Konversionsfunktionen: to_string, stoi usw. 4.5.2 C++17-Konversionsfunktionen: to_chars und from_chars 4.5.3 Konversionen mit Stringstreams Ө 4.6 string_view –Strings zum Anschauen 4.7 Reguläre Ausdrücke Ө 5 Arrays und Container 5.1 Synonyme für Datentypen 5.1.1 Einfache typedef-Deklarationen 5.1.2 Synonyme für Datentypen mit using 5.2 Eindimensionale Arrays 5.2.1 Arrays im Stil von C 5.2.2 Arrays des Typs std::array 5.2.3 Dynamische Arrays des Typs std::vector 5.2.4 Die Initialisierung von Arrays bei ihrer Definition 5.2.5 Vorteile von std::array und std::vector gegenüber C-Arrays 5.2.6 Ein einfaches Sortierverfahren (Auswahlsort) 5.3 Arrays als Container 5.4 Mehrdimensionale Arrays Ө 5.5 Dynamische Programmierung Ө 6 Einfache selbstdefinierte Datentypen 6.1 Mit struct definierte Klassen 6.2 Aufzählungstypen 6.2.1 Schwach typisierte Aufzählungstypen (C/C++03) 6.2.2 enum Konstanten und Konversionen Ө 6.2.3 Stark typisierte Aufzählungstypen (C++11) 7 Zeiger, dynamisch erzeugte Variablen und smart pointer 7.1 Die Definition von Zeigervariablen 7.2 Der Adressoperator, Zuweisungen und generische Zeiger 7.3 Explizite Konversionen Ө 7.4 Ablaufprotokolle für Zeigervariable 7.5 Dynamisch erzeugte Variablen 7.5.1 new und delete 7.5.2 Der Unterschied zu „gewöhnlichen“ Variablen 7.5.3 Der Smart Pointer Typ unique_ptr 7.5.4 Dynamische erzeugte eindimensionale Arrays 7.6 Stringliterale, nullterminierte Strings und char*-Zeiger 7.7 Arrays, Zeiger und Zeigerarithmetik 7.8 Memory Leaks finden 7.9 Verkettete Listen 7.10 Binärbäume Ө 8 Überladene Funktionen und Operatoren 8.1 Inline-Funktionen Ө 8.2 Überladene Funktionen 8.2.1 Funktionen, die nicht überladen werden können 8.2.2 Regeln für die Auswahl einer passenden Funktion 8.3 Überladene Operatoren mit globalen Operatorfunktionen 8.3.1 Globale Operatorfunktionen 8.3.2 Die Ein- und Ausgabe von selbst definierten Datentypen 8.3.3 new und delete überladen 8.4 Referenztypen, Wert- und Referenzparameter 8.4.1 Wertparameter 8.4.2 Referenztypen 8.4.3 Referenzparameter 8.4.4 Referenzen als Rückgabetypen 8.4.5 Konstante Referenzparameter 8.5 Reihenfolge der Auswertung von Ausdrücken seit C++17 9 Objektorientierte Programmierung 9.1 Klassen 9.1.1 Datenelemente und Elementfunktionen 9.1.2 Der Gültigkeitsbereich von Klassenelementen 9.1.3 Datenkapselung: Die Zugriffsrechte private und public 9.1.4 Der Aufruf von Elementfunktionen und der this-Zeiger 9.1.5 Konstruktoren und Destruktoren 9.1.6 shared_ptr: Smart Pointer für Klassenelemente und RAII 9.1.7 OO Analyse und Design: Der Entwurf von Klassen 9.1.8 Klassendiagramme 9.1.9 Initialisierungslisten für Variablen, Argumente und Rückgabewerte 9.1.10 Initialisierungslisten als Parameter 9.1.11 Implizite Typzuweisungen mit auto 9.2 Klassen als Datentypen 9.2.1 Der Standardkonstruktor 9.2.2 Elementinitialisierer 9.2.3 friend-Funktionen und –Klassen 9.2.4 Überladene Operatoren mit Elementfunktionen 9.2.5 Der Kopierkonstruktor 9.2.6 Der Zuweisungsoperator = für Klassen 9.2.7 Die Angaben =delete und =default 9.2.8 Konvertierende und explizite Konstruktoren Ө 9.2.9 Konversionsfunktionen mit und ohne explicit Ө 9.2.10 Statische Klassenelemente 9.2.11 inline Variablen, insbesondere static inline Datenelemente 9.2.12 Konstante Objekte und Elementfunktionen 9.2.13 std::function: Ein Datentyp für Funktionen und aufrufbare Objekte 9.2.14 Delegierende Konstruktoren Ө 9.2.15 Klassen und Header-Dateien 9.3 Vererbung und Komposition 9.3.1 Die Elemente von abgeleiteten Klassen 9.3.2 Zugriffsrechte auf die Elemente von Basisklassen 9.3.3 Verdeckte Elemente 9.3.4 Konstruktoren, Destruktoren und implizit erzeugte Funktionen 9.3.5 Vererbung bei Formularen in Windows Forms Anwendungen 9.3.6 OO Design: public Vererbung und „ist ein“-Beziehungen 9.3.7 OO Design: Komposition und „hat ein“-Beziehungen 9.3.8 Konversionen zwischen public abgeleiteten Klassen 9.3.9 Mehrfachvererbung und virtuelle Basisklassen 9.4 Virtuelle Funktionen, späte Bindung und Polymorphie 9.4.1 Der statische und der dynamische Datentyp 9.4.2 Virtuelle Funktionen in C++03 9.4.3 Virtuelle Funktionen mit override in C++11 9.4.4 Die Implementierung von virtuellen Funktionen: vptr und vtbl 9.4.5 Virtuelle Konstruktoren und Destruktoren 9.4.6 Virtuelle Funktionen in Konstruktoren und Destruktoren 9.4.7 OO-Design: Einsatzbereich und Test von virtuellen Funktionen 9.4.8 OO-Design und Erweiterbarkeit 9.4.9 Rein virtuelle Funktionen und abstrakte Basisklassen 9.4.10 OO-Design: Virtuelle Funktionen und abstrakte Basisklassen 9.4.11 Interfaces und Mehrfachvererbung 9.4.12 Objektorientierte Programmierung: Zusammenfassung 9.5 R-Wert Referenzen und Move-Semantik 9.5.1 R-Werte und R-Wert Referenzen 9.5.2 move-Semantik 9.5.3 R-Werte mit std::move erzwingen 9.5.4 Move-Semantik in der C++11 Standardbibliothek 9.5.5 Move-Semantik für eigene Klassen 9.5.6 Perfect forwarding Ө 10 Namensbereiche 10.1 Die Definition von Namensbereichen 10.2 Die Verwendung von Namen aus Namensbereichen 10.3 Header-Dateien und Namensbereiche 10.4 Aliasnamen für Namensbereiche Ө 10.5 inline namespaces Ө 11 Exception-Handling 11.1 Die try-Anweisung 11.2 Exception-Handler und Exceptions der Standardbibliothek 11.3 Einige vordefinierte C++/CLI und .NET Exceptions 11.4 throw-Ausdrücke und selbst definierte Exceptions 11.5 Exceptions weitergeben 11.6 Fehler und Exceptions 11.7 Die Freigabe von Ressourcen bei Exceptions: RAII 11.8 Exceptions in Konstruktoren und Destruktoren 11.9 noexcept 11.10 Exception-Sicherheit 12 Containerklassen der C++-Standardbibliothek 12.1 Sequenzielle Container der Standardbibliothek 12.1.1 Die Container-Klasse vector 12.1.2 Iteratoren 12.1.3 Geprüfte Iteratoren (Checked Iterators) 12.1.4 Die bereichsbasierte for-Schleife 12.1.5 Iteratoren und die Algorithmen der Standardbibliothek 12.1.6 Die Speicherverwaltung bei Vektoren Ө 12.1.7 Mehrdimensionale Vektoren Ө 12.1.8 Gemeinsamkeiten und Unterschiede der sequenziellen Container 12.1.9 Die Container-Adapter stack, queue und priority_queue Ө 12.1.10 Container mit Zeigern 12.2 Assoziative Container 12.2.1 Die Container set und multiset 12.2.2 Die Container map und multimap 12.2.3 Iteratoren der assoziativen Container 12.2.4 Ungeordnete Assoziative Container (Hash-Container) 12.3 Zusammenfassungen von Datentypen 12.3.1 Wertepaare mit std::pair 12.3.2 Tupel mit std::tuple 12.3.3 Strukturierte Bindungen Ө 12.3.4 std::optional – Eine Klasse für einen oder keinen Wert 12.3.5 std::variant – Eine Klasse für Werte bestimmter Typen 12.3.6 std::any: Ein Datentyp für Werte beliebiger Typen Ө 13 Dateibearbeitung mit den Stream-Klassen 13.1 Stream-Variablen, ihre Verbindung mit Dateien und ihr Zustand 13.2 Fehler und der Zustand von Stream-Variablen 13.3 Lesen und Schreiben von Binärdaten mit read und write 13.4 Lesen und Schreiben mit den Operatoren << und >> 13.5 Filesystem 13.6 Ein selbstgestrickter Windows-Explorer 13.6.1 Die Anzeige von Listen mit ListView 13.6.2 ListView nach Spalten sortieren 13.6.3 Die Anzeige von Baumstrukturen mit TreeView 13.6.4 SplitContainer: Ein selbstgestrickter Windows Explorer 14 Funktoren, Funktionsobjekte und Lambda-Ausdrücke 14.1 Der Aufrufoperator () 14.2 Prädikate und Vergleichsfunktionen 14.3 Binder Ө 14.4 Lambda-Ausdrücke 14.5 Lambda-Ausdrücke – Weitere Konzepte Ө 14.5.1 Lambda-Ausdrücke werden zu Funktionsobjekten 14.5.2 Nachstehende Rückgabetypen 14.5.3 Generische Lambda-Ausdrücke 14.5.4 Lambda-Ausdrücke höherer Ordnung Ө 15 Templates 15.1 Generische Funktionen: Funktions-Templates 15.1.1 Die Deklaration von Funktions-Templates mit Typ-Parametern 15.1.2 Spezialisierungen von Funktions-Templates 15.1.3 Fehlersuche bei Template-Instanziierungen 15.1.4 Funktions-Templates mit Nicht-Typ-Parametern 15.1.5 Explizit instanziierte Funktions-Templates Ө 15.1.6 Explizit spezialisierte und überladene Templates 15.1.7 Rekursive Funktions-Templates Ө 15.2 Generische Klassen: Klassen-Templates 15.2.1 Die Deklaration von Klassen-Templates mit Typ-Parametern 15.2.2 Spezialisierungen von Klassen-Templates 15.2.3 Klassen-Templates mit Nicht-Typ-Parametern 15.2.4 Explizit instanziierte Klassen-Templates Ө 15.2.5 Partielle und vollständige Spezialisierungen Ө 15.2.6 Vererbung mit Klassen-Templates Ө 15.2.7 Die Ableitung von Typ-Argumenten bei Klassen-Templates 15.2.8 Alias Templates Ө 15.3 Variablen-Templates Ө 15.4 Typ-Argument abhängige Templates mit Type Traits 15.4.1 Eine Konstruktion von type traits 15.4.2 Die type traits Kategorien 15.4.3 Type traits und static_assert 15.4.4 Templates mit if constexpr und type traits optimieren 15.4.5 Typ-Inferenz mit decltype 15.5 Variadische Templates 15.5.1 Variadische Funktions-Templates 15.5.2 Fold Ausdrücke 15.5.3 Variadische Klassen-Templates am Beispiel von std::tuple 16 STL-Algorithmen und Lambda-Ausdrücke 16.1 Iteratoren 16.1.1 Die verschiedenen Arten von Iteratoren 16.1.2 Umkehriteratoren 16.1.3 Einfügefunktionen und Einfügeiteratoren 16.1.4 Stream-Iteratoren 16.1.5 Container-Konstruktoren mit Iteratoren 16.1.6 Globale Iterator-Funktionen Ө 16.2 Nichtmodifizierende Algorithmen 16.2.1 Lineares Suchen 16.2.2 Zählen 16.2.3 Der Vergleich von Bereichen 16.2.4 Suche nach Teilfolgen 16.2.5 Minimum und Maximum 16.2.6 Mit all_of, any_of, none_of alle Elemente in einem Bereich prüfen 16.3 Kopieren und Verschieben von Bereichen 16.4 Elemente transformieren und ersetzen 16.5 Elementen in einem Bereich Werte zuweisen Ө 16.6 Elemente entfernen– das erase-remove Idiom 16.7 Die Reihenfolge von Elementen vertauschen 16.7.1 Elemente vertauschen 16.7.2 Permutationen Ө 16.7.3 Die Reihenfolge umkehren und Elemente rotieren Ө 16.7.4 Elemente durcheinander mischen Ө 16.8 Algorithmen zum Sortieren und für sortierte Bereiche 16.8.1 Partitionen Ө 16.8.2 Bereiche sortieren 16.8.3 Binäres Suchen in sortierten Bereichen 16.8.4 Mischen von sortierten Bereichen 16.9 Numerische Algorithmen und Datentypen 16.9.1 Numerische Algorithmen 16.9.2 Valarrays Ө 16.9.3 Zufallszahlen mitӨ 16.9.4 Komplexe Zahlen Ө 16.9.5 Numerische Bibliotheken neben dem C++-Standard Ө 17 Zeiten und Kalenderdaten mit chrono 17.1 Brüche als Datentypen: Das Klassen-Template ratio 17.2 Ein Datentyp für Zeiteinheiten: duration 17.3 Datentypen für Zeitpunkte: time_point 17.4 Uhren: system_clock und steady_clock 18 Multithreading 18.1 Funktionen als Threads starten 18.1.1 Funktionen mit thread als Threads starten 18.1.2 Lambda-Ausdrücke als Threads starten 18.1.3 Zuweisungen und move für Threads 18.1.4 Exceptions in Threads 18.1.5 Informationen über Threads 18.1.6 Sleep-Funktionen 18.1.7 Threads im Debugger 18.2 Kritische Abschnitte 18.2.1 Atomare Datentypen 18.2.2 Kritische Bereiche mit mutex und lock_guard bzw. scoped_lock sperren 18.2.3 Read/Write-Mutexe mit shared_mutex und shared_lock 18.2.4 Deadlocks 18.2.5 call_once zur Initialisierung von Daten 18.2.6 Thread-lokale Daten 19 Smart Pointer: shared_ptr, unique_ptr und weak_ptr 19.1 Gemeinsamkeiten von unique_ptr und shared_ptr 19.2 unique_ptr 19.3 shared_ptr 19.4 Deleter und Smart Pointer für Arrays 19.5 weak_ptr Ө 20 C++/CLI, .NET-Bibliotheken und C++ Interoperabilität 20.1 Native C++-Code in C# verwenden – .NET Framework DLLs 20.2 Native C++-Code in C# verwenden – .NET DLLs 20.3 C++/CLI Grundlagen 20.3.1 Verweisklassen 20.3.2 System::String und std::string konvertieren 20.3.3 Garbage Collection und der GC-Heap 20.3.4 Destruktoren und Finalisierer 20.4 Assemblies 20.4.1 Anwendungen und die main-Funktion 20.4.2 DLLs 20.4.3 Disassembler und Obfuscation 20.5 .NET Klassen mit C++/CLI in Windows Forms verwenden 20.5.1 Steuerelemente manuell erzeugen 20.5.2 Ein Steuerelement manuell einem Formular hinzufügen 20.6 Weitere Formulare und eigene Dialoge 20.7 EMails versenden 20.8 Grafiken zeichnen 20.9 Microsoft Office Anwendungen steuern 20.9.1 Microsoft Office Word 20.9.2 Excel 20.10 WinAPI-Funktionen aus windows.h verwenden Literaturverzeichnis Index