zoukankan      html  css  js  c++  java
  • STL(标准函数)

    头文件都是:#include<algorithm>

    qsort篇

     qsort(a,len,sizeof(type),mycmp)

    //注释

    a:待排序的数组地址

    len:待排序的数组的长度

    type:待排序的数组元素的类型

    mycmp:自定义的排序函数

     1 /****************一维数组类比较函数************
     2 int mycmp(const void *a,const void *b)
     3 {
     4  return *(int *)a - *(int *)b;
     5 }
     6 //注 char、float、double型数组时
     7 //只需将return中的int改成相应的类型即可。
     8 //(const void *a,const void *b)必须照写
     9 ********************************************/
    10 
    11 
    12 /****************字符串类比较函数(二维)************
    13 int mycmp(const void *a,const void *b)
    14 {
    15  return strcmp((char *)a,(char *)b);
    16 }
    17 ************************************************/
    18 /*************二维数组整体排序比较函数******
    19 int mycmp(const void *a,const void *b)
    20 {
    21  return *(int *)a-*(int *)b;
    22  //注 char、float、double型数组时
    23 //只需将return中的int改成相应的类型即可。
    24 //(const void *a,const void *b)必须照写
    25 }
    26 ****************************************/
    27 /*************一维结构体排序比较函数******
    28     struct  node
    29     {
    30      int a;
    31     };
    32 int mycmp(const void *c,const void *b)
    33 {
    34  return (*(node *)c).a-(*(node *)b).a;
    35 }
    36 *********************************************/
    37 /*****************二维结构体排序*********************
    38 struct node 
    39 {
    40  int data;
    41  char str[5];
    42 };
    43 int mycmp(const void *a,const void *b)
    44 {
    45   if((*(node *)a).data!=(*(node *)b).data)
    46       return  (*(node *)a).data -(*(node *)b).data ;
    47   return strcmp((*(node *)a).str,(*(node *)b).str );
    48  
    49 }
    50 *******************************************************/
    51 
    52 int main()
    53 {
    54     //qsort篇
    55   /*************一维数组类**************
    56     int a[7]={2,1,3,5,4,7,6},i;
    57      qsort(a,7,sizeof(int),mycmp);
    58      for(i=0;i<7;i++)
    59      cout<<a[i]<< "  ";
    60      cout<<endl;
    61   **************************************/
    62 
    63   
    64   
    65   /**************字符串(二维)******************
    66     char s[5][4]={"aa","dd","cc","ee","bb"};
    67      qsort(s,5,sizeof(s[0]),mycmp);
    68      for(int i=0;i<5;i++)
    69          cout<<s[i]<<endl;
    70 ***********************************************/
    71 /**************二维数组******************    
    72     int a[7][2]={{2,2},{1,9},{3,3},{5,5},{4,4},{7,7},{6,6}},i;
    73      qsort(a,7,sizeof(a[0]),mycmp);//分组排序
    74 //     qsort(a,14,sizeof(int),mycmp);//全部元素一起排序,mycmp为一维int
    75      for(i=0;i<7;i++)
    76          for(int j=0;j<2;j++)
    77      cout<<a[i][j]<< "  ";
    78      cout<<endl;
    79 *************************************************/
    80 /***********************一维结构体排序*************
    81 node b[5];
    82 b[0].a=5;
    83 b[1].a=3;
    84 b[2].a=2;
    85 b[3].a=4;
    86 b[4].a=1;
    87 qsort(b,5,sizeof(node),mycmp);
    88 for(int i=0;i<5;i++)
    89 cout<<b[i].a <<endl;
    90 *************************************************/
    91  
    92 /*******************二维结构体排序****************
    93     node s[5]={{5,"dd"},{3,"dd"},{5,"cc"},{1,"aa"},{2,"bb"}};    
    94  qsort(s,5,sizeof(node),mycmp);
    95  for(int i=0;i<5;i++)
    96      cout<<s[i].data<<" "<<s[i].str<<endl;  
    97 *****************************************/
  • 相关阅读:
    汇编学习笔记(一)
    外部中断的资料
    喇叭的落幕
    红外模块
    SQL2005连接不上解决
    DataGrid中动态添加列,使用CheckBox选择行
    List和ObservableCollection的相互转化
    使用C#发送邮件
    C#委托与事件 简明
    Linq GroupBy 求和
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3031103.html
Copyright © 2011-2022 走看看