• C++ sort() method with 1.default operator,2 stand library compare ,3custom function,4,lambda expression


    #include <iostream>
    #include <unistd.h>
    #include <uuid/uuid.h>
    #include <ctime>
    #include <random>
    #include <array>
    #include <algorithm>
    #include <functional>
    #include <string_view>
    
    using namespace std;
    
    void sortArray1();
    char* getTimeNow();
    
    int main()
    {
        sortArray1();
        return 0;
    }
    
    void sortArray1()
    {
        srand(time(NULL));
        array<int,100> arr;
        int len=arr.size();
        for(int i=0;i<len;i++)
        {
            arr[i]=rand()%1000000;
        }
    
        auto print=[&arr](std::string_view const rem)
        {
            cout<<rem<<endl;
            for(auto num:arr)
            {
                cout<<num<<' ';
            } 
            cout<<endl<<endl;
        };
    
        print("Original array container elements");
         
        array<int,100>::iterator itr=arr.begin(); 
        sort(arr.begin(),arr.end()); 
        print("Sorted with the default operator<");
     
        sort(arr.begin(),arr.end(),std::greater<int>());
        print("Sorted with the standard library compare function object");
    
        struct 
        {
            bool operator()(int a,int b) const {return a<b;}
        } customLess;
    
        std::sort(arr.begin(),arr.end(),customLess);
        print("Sorted with a custom function object");
    
        std::sort(arr.begin(),arr.end(),[](int a,int b)
        {
            return a>b;
        });  
        print("Sorted with a lambda expression!");
        cout<<"\nFinished in random1() now is "<<getTimeNow()<<endl;
    }
    
    char* getTimeNow()
    {
        time_t rawTime=time(NULL);
        struct tm tmInfo=*localtime(&rawTime);
        char *dtValue=(char*)malloc(40);
        strftime(dtValue,20,"%Y%m%d%H%M%S",&tmInfo);
        return dtValue;
    }

    Compile via below g++ command

    g++ -g -std=c++2a -I. h1.cpp -o h1 -luuid

    Run the compiled output

    ./h1

    The finally effect illustrated as below.

  • 相关阅读:
    智能指针unique_ptr记录
    ubuntu系统火狐无法播放网页视频
    javascript中json对象json数组json字符串互转及取值
    C#压缩文件
    C#异步编程
    C# POST请求 json格式
    C# Http方式下载文件到本地类
    C#中NPOI操作excel之读取和写入excel数据
    浅析C#中抽象类和接口的区别
    C#自动实现Dll(OCX)控件注册的两种方法
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15691636.html
Copyright © 2020-2023  润新知