Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeC++

Paralleles Sortieren mit der C++17-Algorithmenbibliothek mit C++Builder 10.4 Sydney für Win32 und Win64

C ++ Builder 10.4 Sydney unterstützt den ISO C ++ 17-Standard in den Clang-basierten Compilern für Win32 und Win64 . Ein Teil des C ++ 17-Standards enthält die  Algorithmenbibliothek  , die Ausführungsrichtlinien zur Unterstützung paralleler Operationen bereitstellt. Im Folgenden finden Sie ein einfaches VCL-Beispiel, das den C ++ std :: vector und die Richtlinie zum Sortieren und parallelen Ausführen der Algorithmusbibliothek verwendet, um zufällige Ganzzahlen im Vektor zu sortieren. Dieses Beispiel wird derzeit mit den Clang-Basis-Compilern für 32- und 64-Bit-Windows kompiliert.

Mein VCL-Formular enthält einen TButton, TLabel und zwei TMemo-Komponenten.

pastedimage1597072022306v1-3966634

Die Ereignisbehandlungsroutine für Schaltflächen beim Klicken enthält den einfachen Code zum Erstellen, Sortieren und Anzeigen der Ergebnisse des Vektors.

#include <algorithm>

#include <vector>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const int max_data = 1000; // number of random numbers to create
Memo1->Lines->Clear();
Memo2->Lines->Clear();
Label1->Caption = Building Random Data;
Label1->Update();
// fill the vector with random numbers and save them in Memo1
std::vector<int> my_data;
for (int i = 1; i <= max_data; i++) {
int random_value = Random(max_data);
my_data.push_back(random_value);
Memo1->Lines->Add(IntToStr(random_value));
}
Label1->Caption = Sorting Random Data;
Label1->Update();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Wenn Sie Code für Nicht-Clang- und Clang-Compiler einfügen möchten, können Sie die folgenden Präprozessor-Direktiven #if, #elif, #else, #endif in Ihre Anwendungen verwenden

Fullscreen

 

#if defined(__clang__)
#if (__clang_major__ == 5 && __clang_minor__ == 0)
#warning clang major = 5 and clang minor = 0
#elif (__clang_major__ == 3 && __clang_minor__ == 3)
#warning clang major = 3 and clang minor = 3
#else
#warning Unable to determine correct clang header version
#endif
#else
#warning not a clang compiler
#endif
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

C ++ 17 In diesem einfachen Beispiel verwendete Referenzen:

std :: vector

C ++ Containers Bibliothek std :: vector
Definiert im Header <vector>
https://en.cppreference.com/w/cpp/container/vector

Algorithmusbibliothek

Die Algorithmenbibliothek bietet Funktionen, die über die Standard-C ++ – Bibliothek hinausgehen. Diese Bibliothek definiert zusätzliche Funktionen zum Suchen, Abtasten, Sortieren, Zählen, Bearbeiten, allgemeinen Summieren und mehr.
Definiert im Header <Algorithmus>
https://en.cppreference.com/w/cpp/algorithm

Sortieralgorithmus
https://en.cppreference.com/w/cpp/algorithm/sort

Richtlinien zur Ausführung von Algorithmen
https://en.cppreference.com/w/cpp/algorithm/execution_policy_tag

Richtlinientypen für die Algorithmusausführung
https://en.cppreference.com/w/cpp/algorithm/execution_policy_tag_t


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Zusammenhängende Posts
BeiträgeCode

C++Builder-Optimierungshandbuch mit TwineCompile

BeiträgeC++CodeDatabaseDelphiInterBaseRAD Studio

Dark Data, Stand-by und Programmiersprachen - Wie wir durch Datenfasten den ökologischen Fußabdruck reduzieren sollten.

BeiträgeC++

Verwenden einer allgemeinen C ++ - Bibliothek mit C ++ Builder und TwineCompile

BeiträgeC++DelphiRAD Studio

RAD Studio 10.4.2 Silent Installer erleichtert die Automatisierung des Installationsprozesses

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES