[LINUX] Programmierung aus Büchern gelernt 9. Mai
Prinzipien und Praktiken der Programmierung mit C ++
https://amzn.to/2ytBG55
Kapitel 19 Vektor, Vorlage, Ausnahme
- Die Vektorimplementierung erfordert keine Bereichsüberprüfung in [], verbietet diese jedoch nicht.
- Wenn eine Ressource gesichert wird, muss sie in der Regel direkt oder indirekt an den Teil des Systems zurückgegeben werden, der die Ressource verwaltet.
- Als Beispiel für Ressourcen gibt es ein Socket-Fenster für das Thread-Handle der Speichersperrdatei.
--Freestore-Speicher, der mit dem neuen Operator zugewiesen und mit dem Löschoperator an den Freestore zurückgegeben wurde
- Ein Objekt, das für die Freigabe einer Ressource verantwortlich ist, z. B. ein Vektor, wird als Eigentümer oder Handle dieser Ressource bezeichnet.
--Vektor verwenden, anstatt die Operatoren new oder delete explizit zu verwenden, wenn die erforderlichen Speicherinteressen im Bereich variieren.
Kapitel 19 Bohrer
―― 1 definiere Vorlage Struktur S {T val;};
--2 Fügen Sie einen Konstruktor hinzu, damit er mit T initialisiert werden kann
--3 Definieren Sie Variablen vom Typ S S S S S <vector > und initialisieren Sie sie mit dem ausgewählten Wert
―― 4 Lesen Sie diese Werte und geben Sie sie aus
- Fügen Sie eine Funktionsvorlage get () hinzu, die einen Verweis auf 5 val zurückgibt.
―― 6 Holen Sie sich die Definition von get () aus der Klasse
--7 Val privat machen
--8 Verwenden Sie get (), um Drill 4 erneut auszuführen.
--9 Fügen Sie die Funktionsvorlage set () hinzu, damit val geändert werden kann.
- Ersetzen Sie 10 set () durch S :: operator = (const T &). Hinweis viel einfacher als 19.2.5
--11 Geben Sie eine const-Version von get () und eine nicht-const-Version an
――- 12 Definieren Sie die Funktion read_val (T & v) der Vorlage read_val, um von cin nach v zu lesen
―― 13 Lesen Sie die Werte mit read_val () in die Variablen von Drill 3 ein, mit Ausnahme der Variablen vom Typ S <vector >.
―― 14 Bonus, definieren Sie den >> Operator und den << Operator des Vektors . Beide Operationen verwenden das Format {val, val, val}. Infolgedessen kann read_val () auch Variablen vom Typ S <vector > verarbeiten.
Kapitel 19 Übungen
- Erstellen Sie für jede Übung zwei Objekte der vordefinierten Klasse und testen Sie sie (mithilfe der Ausgabe), um sicherzustellen, dass das Design und die Implementierung tatsächlich wie erwartet funktionieren. Wenn es sich um Ausnahmen handelt, müssen Sie zweimal überlegen, wo der Fehler auftritt.
--1 Schreiben Sie die Vorlagenfunktion f (). Diese Funktion fügt einem anderen Element vom Typvektor ein Element vom Typ Vektor hinzu. Zum Beispiel führt f (v1, v2) für jedes Element von v1 v1 [i] + = v2 [i] aus.
--2 Schreiben Sie eine Vorlagenfunktion, die den Vektor vt und den Vektor vu als Argumente empfängt. Diese Funktion gibt die Summe aller vt [i] * vu [i] zurück.
--3 Beschreiben Sie das Vorlagenklassenpaar. Diese Klasse kann Wertepaare eines beliebigen Typs speichern. Verwenden Sie diese Klasse, um eine einfache Symboltabelle zu implementieren, wie sie im Taschenrechnerprogramm (7.8) verwendet wird.
--4 Schreiben Sie die Link-Klasse (17.9.3) neu und ändern Sie sie in eine Vorlage, die den Werttyp als Vorlagenargument verwendet. Verwenden Sie dann Link , um Übung 13 in Kapitel 17 erneut auszuführen.
―― 5 Definieren Sie die Int-Klasse. Diese Klasse enthält nur ein Klassenmitglied vom Typ int. Definieren Sie Konstruktoren, Zuweisungen, Operatoren +, -, *, /. Testen Sie diese Klasse und verbessern Sie das Design nach Bedarf, z. B. indem Sie die Operatoren << und >> definieren, um die Durchführung von E / A zu vereinfachen.
Nachtrag
- Mithilfe einer Vorlage können Sie einen Container wie vecotor getrennt von der Elementtypdefinition definieren.
- Durch die Verwendung einer Ausnahme kann der Code, der den Fehler erkennt und benachrichtigt, getrennt von dem Code geschrieben werden, der den Fehler behandelt.
- Sie können push_back () resize () Reserve () verwenden, um die Definition des Vektors von der Verwendung dieser Größe zu trennen.
Data Scientist Training Reader: Einführung in das maschinelle Lernen
https://amzn.to/3fvlfpr
Kapitel 4 Vorreiter des tiefen Lernens
- Die Verlustfunktion ist eine Funktion, die zurückgibt, um wie viel die vom mehrschichtigen Perzeptron ausgegebene Vorhersage ausgeschaltet ist.
Buddhas Worte
https://amzn.to/2A4nVdf
** Beim Studium der künstlichen Intelligenz an Menschen denken **
Kapitel 3 Großes Kapitel
- Menschen, die aufgrund ihrer Wünsche in den Freuden des Überlebens gefangen sind, sind schwer loszuwerden. Weil es nicht bedeutet, dass andere dich gehen lassen.
- Betrachten Sie sich nicht als minderwertig oder überlegen, ohne sich anderen gleich zu zeigen.
―― Verlassen Sie sich nicht auf akademisches Wissen
――Ich habe keine Wünsche für diese oder die nächste Welt