uva1587是否得到长方体

预备知识

memcmp()  //#include <string.h>

  •  int memcmp(const void *str1, const void *str2, size_t n));其功能是把存储区 str1 和存储区 str2 的前 n 个字节进行比较。该函数是以字典序按字节比较的。
  • char *s1="abc";  char *s2="acd";  int r=memcmp(s1,s2,3); 就是比较s1和s2的前3个字节,第一个字节相等,第二个字节比较中大小已经确定,不必继续比较第三字节了。所以r=-1.

sort()  //#include <algorithm>

1.sort(start,end,compare())第二个参数是结束地址的下一个地址,第三个参数没有时默认升序。bool compare(T a,T b){....return ..;}返回值控制如何排序

2.1sort(start,end)默认升序:

1  int a[7] = { 2,1,5,7,3,4,3 };
2     sort(a,a+7);
3     for (int i = 0;i < 7;++i)
4   cout << a[i] << " "; //1,2,3,3,4,5,7 

sort(start,end,greater<int>())为降序排序;

2.2自定义降序:

bool compare(int a,int b)
{ return a > b; }; int a[7] = { 3,5,1,7,4,2,8 }; sort(a,a+7,compare);  

 2.3自定义类型的字典序升序:

struct two
{
    int x;int y;
}arr[7];
bool compare(two a,two b)
{
    if (a.x != b.x)return a.x < b.x;
    else return a.y < b.y;
};
 sort(arr,arr+7,compare);//arr[i]按照xy字典序升序

  uva1587是否得到长方体  ;

2.4自定义升序降序混合:

bool compare(two a,two b){

if (a.x != b.x)return a.x < b.x;
else return a.y > b.y;
};uva1587是否得到长方体

 

2.5当compare(T a,T b)中return a==b时,不排序。

 

 

上一篇:使用PCAST检测散度以比较GPU和CPU结果


下一篇:Lombda表达式留份