
在C ++ Builder 10.4 Sydney for Win32和Win64中使用C ++ 17算法库并行排序
C++ Builder 10.4
发布日期:2021-05-04 20:44:09
浏览次数:19
分类:精选文章
本文共 1609 字,大约阅读时间需要 5 分钟。
C ++ Builder 10.4 Sydney 在基于Clang的Win32和Win64编译器中支持ISO C ++ 17标准。C ++ 17标准的一部分包括算法库 ,该 库提供执行策略以支持并行操作。在下面,您将找到一个简单的VCL示例,该示例使用C ++ std :: vector以及算法库的sort和parallel执行策略对vector中的随机整数进行排序。本示例当前使用Clang基本编译器针对32和64位Windows进行编译。
我的VCL窗体中包含一个TButton,TLabel和两个TMemo组件。欢迎加入Delphi开发局QQ群:32422310

Button单击事件处理程序包含用于创建向量,对其进行排序并显示结果的简单代码。
#include#include 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 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(); // sort the random numbers in the vector std::sort(std::execution::par,my_data.begin(),my_data.end()); // put the sorted vector in Memo2 Label1->Caption = "Sorting Completed"; Label1->Update(); for(int n : my_data) { Memo2->Lines->Add(IntToStr(n)); }}
如果要包括非Clang和Clang编译器的代码,则可以在应用程序中使用以下#if,#elif,#else,#endif预处理程序指令。
#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
发表评论
最新留言
很好
[***.229.124.182]2025年03月21日 18时57分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
整合:2021年已收录GitHub的最新、最全、最实用的Java岗面试真题
2019-03-04
限时开源!公布半小时下载量达10W:阿里大牛出品「MyCat笔记」
2019-03-04
阿里Java全线成长宝典,从P5到P8一应俱全
2019-03-04
Java程序员面试涨薪手册,字节21火山版强势来袭
2019-03-04
世界级安全专家整理出的Linux高级笔记,限时开源
2019-03-04
GitHub访问破百万,阿里神作:并发实现原理JDK源码笔记
2019-03-04
阿里SpringBoot全栈小册!Github标星百万,限时开源
2019-03-04
程序员职场经验
2019-03-04
js:虚拟dom与diff算法
2019-03-04
计算机系统原理——cachelab 实验1(第一周)
2019-03-04
github学习
2019-03-04
PowerMock框架学习
2019-03-04
JAVA初窥-DAY05
2019-03-04
JAVA初窥-DAY07
2019-03-04
顺序表各种功能的实现
2019-03-04
SpringMVC框架学习(十三)——全局异常处理
2019-03-04
JAVA初窥-DAY13
2019-03-04
Spring Boot (五)——配置自己的banner
2019-03-04
数组--Go语言学习笔记
2019-03-04
Spring Boot (二十一)——自定义异常处理
2019-03-04