说明:本文仅供学习交流,转载请标明出处,欢迎转载!

STL封装了一个排序算法,该算法相应的头文件为#include<algorithm>,我们能够依据须要对一个数组进行排序或者降序。

sort的函数原型为:

void sort(b,e,pre=up),表示对[b,e)的元素进行排序,第三个參数为一个谓词,我们能够自己定义排序方式,默认排序方式为升序排序。

详细实现代码例如以下:

#include<iostream>
#include<vector>
#include<iterator>//使用了流迭代器ostream_iterator
#include<algorithm>//使用sort函数
using namespace std; template<typename T,size_t N>
void print(T (&arr)[N])//输出一个数组的值
{
int i;
for(i=0;i<N;i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
} int up(const int &a,const int& b)//定义升序排序
{
return a<b;
}
int down(const int &a,const int &b)//定义降序排序
{
return a>b;
}
int main()
{
int arr[]={3,1,2,4,9,5,2,9};
print(arr);//输出原数组
sort(arr,arr+sizeof(arr)/sizeof(int),up);
print(arr);//输出升序排序后的数组
sort(arr,arr+sizeof(arr)/sizeof(int),down);
print(arr);//输出降序排序后的数组
return 0;
}

以上代码必须在对STL支持得比較好的编译器下才干编译通过,比方VS2010,g++编译器等都能够,可是VC6.0肯定不行。

最新文章

  1. 微信小程序小技巧系列《二》show内容展示,上传文件编码问题
  2. Java学习--内部类(一)
  3. ARC指南2 - ARC的开启和禁止
  4. Debian openvpn 配置
  5. leetcode@ [87] Scramble String (Dynamic Programming)
  6. c#基础班笔记
  7. 诡异的XmlSerializer属性字段Specified
  8. Maven搭建Spring+Struts2+Hibernate项目详解
  9. freemarker 时间格式化注意事项
  10. [AngularJS] Angular 1.5 multiple transclude
  11. ASP.NET利用byte检测上传图片安全
  12. Effective C++之‘宁以pass-by-reference-to-const替换pass-by-value’
  13. Python爬虫----Beautiful Soup4 基础
  14. POJ 1273 Drainage Ditches 网络流 FF
  15. IDEA中debug启动tomcat报错。Error running t8:Unable to open debugger port(127.0.0.1:49225):java.net.BindException&quot;Address alread in use:JVM_Bind&quot;
  16. IDEA+循环语句 or 输出语句 快捷操作
  17. Java成员变量与局部变量的区别
  18. HDU 1018(阶乘位数 数学)
  19. mysql案例~mysql主从复制延迟概总
  20. 09树莓派一体化安装(All-In-One Installer)智能家居平台Home Assistant

热门文章

  1. HDU 3988 Harry Potter and the Hide Story(数论-整数和素数)
  2. poj1276--Cash Machine(多背包被判刑了)
  3. 【BZOJ1791】【IOI2008】【基环树】island(status第一速度)
  4. Windows Phone 同步方式获取网络类型
  5. 【ASP.NET】判断访问网站的客户端是PC还是手机
  6. linux下串口调试工具/串口终端推荐: picocom
  7. P/Invoke与逆向P/Invoke
  8. 使用Java快速实现进度条(转)
  9. boostrap-非常好用但是容易让人忽略的地方------Font Awesome
  10. ABP项目中的使用AutoMapper