STD Future C ++

STD Future C ++

Heute erfahren wir etwas über eine der wichtigen Header -Dateien der C ++ - Programmiersprache, die die „zukünftige“ Bibliothek ist. Um Verwirrung beim Erlernen des Konzepts der zukünftigen Header -Datei zu vermeiden, überprüfen wir kurz die C ++ - Sprache, bevor wir zum Hauptthema übergehen. Die Bedeutung von Header -Dateien und die Rechtfertigung hinter ihrer Verwendung in der Codierungssprache C ++ werden ebenfalls diskutiert.

Die Codierungssprache C ist der Vorgänger von C++. Darüber hinaus könnten wir angeben, dass es sich um eine verbesserte Form von C handelt, die auf dem Prinzip der objektorientierten Programmierung (OOP) beruht, basiert auf dem Prinzip der objektorientierten Programmierung (OOP). Beim Schreiben eines Programms in der C ++ - Programmiersprache verwenden wir Standard -Header -Dateien, Klassen, Funktionen usw. Diese bewahren uns vor, zahlreiche Codezeilen schreiben zu müssen. Mit ein paar Reserve -Schlüsselwörtern fügen wir einfach die Header -Datei hinzu.

Einführung

In C ++-Programmen müssen wir mindestens eine Bibliothek einbeziehen, die die Mehrheit der C ++-Programme für die Methoden CIN () und Cout () benötigen, damit wir Daten vom Benutzer und viele andere vorgeschriebene Codes akzeptieren, die Code mehr machen lesbar. Um auf diese Funktionen zuzugreifen, müssen Sie eine Header -Datei haben. Die „zukünftige“ Bibliothek wird verwendet, um Klassenvorlagen und zugehörige Vorlagen zu erstellen, die es einfacher machen, eine Methode auszuführen, die sich möglicherweise in einem anderen Thread befand und ihre Ergebnisse abrufen kann. Das Ergebnis ist entweder die Zahl, die die Methode zurückgibt, oder eine Ausnahme, die die Methode generiert, aber nicht fängt.

Um den Ansatz der zukünftigen Headerdatei besser zu verstehen.

Syntax:

So sollte eine Headerdatei eines C ++ - Programms mit dem Tag "#include Future>" geschrieben werden. Lassen Sie uns nun den Implementierung und den Schreibstil der zukünftigen Bibliothek verstehen. Die "#include" -Preprozessor -Richtlinie der C ++ - Programmiersprache ist auf folgende Weise geschrieben. Indem der Präprozessor sie als Vorprozessoranweisungen bezieht, untersucht er das Programm auf bestimmte Richtlinien, die er verstehen kann. Jede Präprozessoranweisung beginnt mit dem Symbol # (Hash).

Der Präprozessor führt zunächst vorläufige Aktionen aus, wie implizit den Code, einschließlich programmbezogener Dateien usw. implizit auszuführen. Bevor der Übersetzer überhaupt auf das Programm trifft. Eine Zukunft ist eine Darstellung der Ergebnisse einer asynchronen Operation, die noch nicht zugänglich sein konnte. Sobald die Berechnungen beendet sind, kann die Zukunft einen Wert enthalten oder einen Fehler anzeigen.

Beispiel:

Um das Konzept zukünftiger Header -Dateien zu verstehen, werden wir zukünftige Bibliotheken implementieren und auch einige andere Bibliotheken und Funktionen diskutieren, die wir verwenden werden. Wir werden jetzt ein Beispiel für die zukünftige Header -Datei in der C ++ - Programmiersprache erstellen.

Dazu verwenden wir zunächst eine C ++ 11 oder über der Version des Compilers, die die zukünftige Bibliothek unterstützt. Die zukünftige Bibliothek funktioniert nicht korrekt im Online -Compiler, wenn Sie nicht über den C ++ 11 oder über den Compiler verfügen. Daher müssen Sie ihn installieren. Schreiben Sie das Beispielprogramm, das wir nach dem Installieren und Starten des Compilers implementieren möchten. Um sicherzustellen, dass die Aktionen des Programms, die Klassen, Objekte, Funktionen usw. bedeuten, im Programm ordnungsgemäß funktionieren, müssen Header -Dateien immer in C ++ - Programme enthalten sein.

Die Methoden, die wir im Programm implementiert haben, hätten ohne die Header -Dateien nicht funktioniert. WWE hätte das Ergebnis im Benutzerbereich nicht einmal gesehen. Wenn wir eine Header -Datei angeben, schreiben wir zunächst das Symbol "#", das dem Compiler mitteilt, dass wir die Bibliothek dem vorhandenen Programm hinzufügen. Der Header -Dateiname, den wir dem Programm hinzufügen möchten, wird nach dem reservierten Keyword von C ++ "Include" geschrieben, mit dem die Header -Datei einbezogen wird. Als nächstes schreiben wir den Bibliotheksnamen "iOstream".

Der iOstream bedeutet, dass wir die Eingabe vom Benutzer mithilfe der Cin () -Methode abrufen können und die Ergebnisse auch mit der Cout () -Methode anzeigen können. Fügt dann eine weitere Header -Datei hinzu, die im Programm „#include ist.

In C ++ - Programmiersprache wird ein einzelner Thread durch die Thread -Klasse unter Verwendung von STD :: Thread dargestellt. Jetzt werden wir einen weiteren Header einschließen, der „#include Library“ ist. Wir können diese Bibliothek für mehrere Zwecke des Programms verwenden, wie wenn wir das Threading im Programm unterstützen möchten, und es wartet auch auf eine asynchron vorgegebene Funktion, die die Funktion asynchron ausführt und die Zukunft des Funktionswerts angibt.

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;

Darüber hinaus werden wir eine weitere Anweisung „Verwenden von Namespace STD“ hinzufügen, mit dem der Umfang des Programms angegeben wird. Einfach gesagt, es beschränkt uns davon.

Als nächstes werden wir eine globale asynchrone Funktion implementieren, um die ID des Profils zu erhalten. Zunächst schreiben wir den Rückgabetyp der Funktion, die eine Ganzzahl ist. Dann schreiben wir den Namen der Funktion, die wir ID "asyncfunc" deklariert haben. Dann haben wir in den Funktionsklammern den Datentyp und die Variable übergeben. In der Funktion asyncfunc () haben wir die ID des Threads mit der Cout () -Methode verwendet. In Zeile 10 haben wir den Wert an den Variablen "Wert" zurückgegeben, den wir in asyncfun () Funktionsklammern deklariert haben.

int asyncfunc (int value)

Cout << "Asynchronous Thread: " << this_thread::get_id() << endl;
Rückgabe "Der Wert ist:", Wert + 200;

Um die Code -Snippets für das von uns implementierende Szenario zu schreiben, rufen wir dann die Main () -Methode auf. Der Rückgabetyp der Main () -Funktion "int" wird zuerst geschrieben, gefolgt vom Funktionsnamen, der die Haupt- () -Funktion ist, wenn die Funktion aufgerufen wird. Erstellen Sie dann den Code, indem Sie die Klammern der Funktion öffnen.

In der nächsten Zeile werden wir die Haupt -ID des Profils drucken, indem wir „This_Thread :: get_id ()“ schreiben und in die Cout () -Methode weitergeben. Als nächstes werden wir die zukünftige Klasse erstellen, indem wir das reservierte Schlüsselwort „Zukunft“ schreiben und den Ganzzahltyp übergeben und der Name der Klasse „Fut“ ist. Als nächstes gibt die asyncfunc () -Funktion das zukünftige Objekt zurück. Dann haben wir die IF -Anweisung verwendet, um zu überprüfen, ob die zukünftige „Fut“ gültig ist und ob die Bedingung gültig ist. Dann haben wir die IF-ELSE-Erklärung verwendet, um die Gültigkeit der Zukunft zu überprüfen. Wenn es gültig ist, wird es das „Fut erstellen.GET () ”Anweisung und wenn dies nicht der Fall ist, druckt sie die Nachricht„ Ungültig.

int main ()

Cout <<"Main Thread: "<< this_thread::get_id() << endl;
Future fut = async (Start :: Async, Asyncfunc, 400);
if (fut.gültig())

Cout << fut.get()<
if (fut.gültig())

Fut.erhalten();

anders

Cout<<"Invalid" <
Rückkehr 0;

Um den Compiler zu informieren, dass sie das Programm nicht mehr ausführen und die Ausgabe auf dem Bildschirm anzeigen sowie den Fehlerbildschirm angezeigt haben, kehren wir am Ende des Programms 0 an die Main () -Methode zurück.

Hier ist die Ausgabe des obigen Programms:

Abschluss

In diesem Artikel haben wir etwas über die zukünftige Header -Datei erfahren. Wir haben gelernt, warum wir zukünftige Header -Dateien verwenden und wie wir sie implementieren werden, indem wir die Syntax der Zukunft lernen. Wir haben ein Beispiel für die Zukunft mit einer detaillierten Erklärung für jede Codezeile implementiert, damit die Verwirrung in den Köpfen der Benutzer übrig bleibt.