首页 > 编程语言 >c++ std::execution::par,std::execution::par_unseq

c++ std::execution::par,std::execution::par_unseq

时间:2023-06-26 16:55:08浏览次数:64  
标签:std par execution int vec include

#include <algorithm>
#include <chrono>
#include <cstdint>
#include <execution>
#include <iostream>
#include <random>
#include <vector>

std::random_device rd;
std::mt19937_64 mt{rd()};

template <typename T>
T gen_random(T min, T max)
{
    std::uniform_int_distribution<T> uid(min, max);
    return uid(mt);
}

void vector_sort_execution_par(const int &len)
{
    std::vector<std::uint32_t> vec;
    for (int i = 0; i < len; i++)
    {
        vec.push_back(gen_random<std::uint32_t>(0, UINT32_MAX));
    }

    for (auto i : vec)
    {
        std::cout << i << "\t";
    }
    std::cout << std::endl;

    std::sort(std::execution::par, vec.begin(), vec.end());
    std::cout << "After sort parallel:" << std::endl;
    for (auto i : vec)
    {
        std::cout << i << "\t";
    }
    std::cout << std::endl;
}

void vector_transformer_execution_par()
{
    std::vector<int> vec1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    std::vector<int> vec2(10);
    std::transform(std::execution::par, vec1.begin(), vec1.end(), vec2.begin(), [](int x)
                   { return x * x; });
    for (auto i : vec2)
    {
        std::cout << i << "\t";
    }
    std::cout << std::endl;
}

void vector_execution_par_unseq(const int &len)
{
    std::vector<std::uint32_t> vec;
    for (int i = 0; i < len; i++)
    {
        std::uint32_t temp=gen_random<std::uint32_t>(0, UINT32_MAX);
        vec.push_back(temp); 
    }
    std::for_each(std::execution::par_unseq, vec.begin(), vec.end(), [](std::uint32_t x)
                  { std::cout << x << "\t"; });
    std::cout << std::endl;
}

int main(int args, char **argv)
{
    vector_execution_par_unseq(atoi(argv[1]));
}
g++-12 -std=c++2a -I. *.cpp -o h1
./h1 10;

 

标签:std,par,execution,int,vec,include
From: https://www.cnblogs.com/Fred1987/p/17506146.html

相关文章

  • 【mysql】parseTime=true 参数说明以及如何在 GORM 中使用它避免 Scan error on colum
    什么是parseTime=true参数parseTime=true是一个MySQL数据库连接参数,它告诉MySQL驱动程序将日期时间类型的值解析为time.Time类型。在MySQL中,日期时间类型的值可以表示为字符串,例如2022-07-0113:30:00。默认情况下,MySQL驱动程序将这些值作为[]uint8类型返回,这可能......
  • Spark简介
    SparkSpark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache的顶级项目,2014年5月发布spark1.0,2016年7月发布spark2.0,2020年6月18日发布spark3.0.0特点Hadoop的MapReduce作为第一代分布......
  • C++面试八股文:std::array如何实现编译器排序?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,st......
  • C++面试八股文:std::array如何实现编译器排序?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,std......
  • ESP(EFI System Partition)分区是UEFI固件中的一个特殊分区,通常位于硬盘上的第一个分区,
    ESP(EFISystemPartition)分区是UEFI固件中的一个特殊分区,通常位于硬盘上的第一个分区,用于存储引导加载程序、UEFI应用程序和其他与系统启动相关的文件。ESP分区使用FAT32文件系统,并拥有特定的分区类型GUID(GUIDPartitionTable,GPT)。ESP分区的主要作用是提供一个可被UEFI固件直接......
  • Python3 configparser读取含有中文配置config.ini(Windows)显示乱码的解决方法
    最近在配置文件config.ini有中文输出时,python3打印出来显示乱码。初步判断是由于编码问题。在Python3中虽有encoding参数,但是对于有BOM(如Windows下用记事本指定为utf-8)的文件,需要使用utf-8-sig,使用utf-8没办法。配置文件config.ini如下:[TABLEDATA]project_name......
  • C++面试八股文:std::string是如何实现的?
    C++面试八股文:std::string是如何实现的?某日二师兄参加XXX科技公司的C++工程师开发岗位第18面:面试官:std::string用过吧?二师兄:当然用过(废话,C++程序员就没有没用过std::string的)。面试官:std::string("hello")+"world"、"hello"+std::string("world")和std::string("hello")......
  • C++面试八股文:std::vector和std::list,如何选择?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第24面:面试官:list用过吗?二师兄:嗯,用过。面试官:请讲一下list的实现原理。二师兄:std::list被称为双向链表,和C中手写双向链表本质上没有大的区别。list对象中有两个指针,一个指向上一个节点(node),一个指向下一个节点(node)。二师兄:与手写......
  • C++面试八股文:std::vector和std::list,如何选择?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第24面:面试官:list用过吗?二师兄:嗯,用过。面试官:请讲一下list的实现原理。二师兄:std::list被称为双向链表,和C中手写双向链表本质上没有大的区别。list对象中有两个指针,一个指向上一个节点(node),一个指向下一个节点(node)。二师兄:与手......
  • Python configparser模块
    Pythonconfigparser模块用于生成和修改常见配置文档,当前模块的名称在python3.x版本中变更为configparser。常见文档格式如下[DEFAULT]ServerAliveInterval=45Compression=yesCompressionLevel=9ForwardX11=yes[bitbucket.org]User=hg[topsecret.se......