当前位置:  编程技术>c/c++/嵌入式

STl中的排序算法详细解析

    来源: 互联网  发布时间:2014-10-20

    本文导语:  1. 所有STL sort算法函数的名字列表: 函数名             功能描述 sort          对给定区间所有元素进行排序 stable_sort     对给定区间所有元素进行稳定排序 partial_sort     对给定区间所有元素部...

1. 所有STL sort算法函数的名字列表:

函数名             功能描述

sort          对给定区间所有元素进行排序

stable_sort     对给定区间所有元素进行稳定排序

partial_sort     对给定区间所有元素部分排序

partial_sort_copy    对给定区间复制并排序

nth_element     找出给定区间的某个位置对应的元素

is_sorted               判断一个区间是否已经排好序

partition         使得符合某个条件的元素放在前面

stable_partition      相对稳定的使得符合某个条件的元素放在前面


2. 比较函数:

当你需要按照某种特定方式进行排序时,你需要给sort指定比较函数,否则程序会自动提供给你一个比较函数

vector < int > vect;

sort(vect.begin(), vect.end());//此时相当于调用

sort(vect.begin(), vect.end(), less() );

sort 中的其他比较函数

equal_to 相等

not_equal_to 不相等

less 小于

greater 大于

less_equal 小于等于

greater_equal 大于等于

上述例子中系统 自己为sort提供了less仿函数。在STL中还提供了其他仿函 数,以下是仿函数列表: 不能直接写入仿 函数的名字,而是要写其重载的()函数: less();

当你的容器中元 素时一些标准类型(int float char)或者string时,你可以直 接使用这些函数模板。但如果你时自己定义的类型或者你需要按照其他方式排序,你可以有两种方法来达到效果:一种是自己写比较函数。另一种是重载类型的'


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • stl容器set,map,vector之erase用法与返回值详细解析
  • STL常用容器详细解析
  • 深入解析C++ STL中的常用容器
  • STL list链表的用法详细解析
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • SGI的STL库 SGI STL
  • c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
  • linux完全支持C++STL嗎?
  • c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
  • 是不是只有C++才可以使用STL?
  • C++ STL标准模板库类String成员详细列表参考及示例代码
  • STL 在 UNIX 多线程 中不能用?
  • c++ stl栈容器stack的pop(),push()等用法介绍及头文件
  • Linux系统下如何获取STL帮助
  • C++ stl队列Queue用法介绍:删除,插入等操作代码举例
  • STL实现 EASTL
  • C++ STL库中priority_queue介绍,成员函数说明及priority_queue具体用法举例
  • 在COMPAQ TRUE64 UNIX用C++编程,使用Gcc,支不支持stl?
  • c++ stl multimap基本操作使用技巧详细介绍
  • 哪儿能下载aix4.3的c++ stl库
  • c++ STL关联式容器Map成员函数介绍及查找(find()),插入(insert()),删除(erase())等操作代码举例
  • 请问在linux下面编程怎样查询stl类的成员函数
  • 双向队列Deque 类成员函数列表参考(c++ STL 容器)
  • 关于stl源代码
  • c++ STL List查找遍历及各成员函数用法详细介绍
  • 请问如果要同时使用STL和多线程,会很麻烦么


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3