STL_算法_对所有元素排序(sort、stable_sort)
来源:互联网 发布:手机订单软件 编辑:程序博客网 时间:2024/06/11 13:03
C++ Primer 学习中。。。
简单记录下我的学习过程 (代码为主)
//大部分容器适用、不适用于list容器
sort(b,e)
sort(b,e,p)
stable_sort(b,e)
stable_sort(b,e,p)
/**------http://blog.csdn.net/u010579068------**/#include<iostream>#include<cstdio>#include<string>#include<vector>#include<list>#include<deque>#include<algorithm>using namespace std;/*****************************************//大部分容器适用、不适用于list容器sort(b,e)sort(b,e,p)stable_sort(b,e)stable_sort(b,e,p)*****************************************//**----------------------------------------------------------------------------------注意:不适用于list容器,list有成员函数sort()----------------------------------------------------------------------------------**//*************************************************************************************std::sort 所有排序容器适用 algorithm--------------------------------------------------------------------------------------template <class RandomAccessIterator> void sort ( RandomAccessIterator first, RandomAccessIterator last );template <class RandomAccessIterator, class Compare> void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );//eg:*************************************************************************************//*************************************************************************************std::stable_sort 所有排序容器适用 algorithm--------------------------------------------------------------------------------------template <class RandomAccessIterator> void stable_sort ( RandomAccessIterator first, RandomAccessIterator last );template <class RandomAccessIterator, class Compare> void stable_sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );//eg:*************************************************************************************/bool myfunction (int i,int j){ return (i<j);}struct myclass{ bool operator() (int i,int j) { return (i<j); }} myobject;bool compare_as_ints (double i,double j){ return (int(i)<int(j));}int main (){ int myints[] = {32,71,12,45,26,80,53,33}; vector<int> myvector (myints, myints+8); // 32 71 12 45 26 80 53 33 vector<int>::iterator it; // using default comparison (operator <): sort (myvector.begin(), myvector.begin()+4); //(12 32 45 71)26 80 53 33 // using function as comp sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80) // using object as comp sort (myvector.begin(), myvector.end(), myobject); //(12 26 32 33 45 53 71 80) // print out content: cout << "myvector contains:"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; cout << endl; /**---------------------------------------------------------------------------------------**/ double mydoubles[] = {3.14, 1.41, 2.72, 4.67, 1.73, 1.32, 1.62, 2.58}; deque<double> mydeque; deque<double>::iterator id; mydeque.assign(mydoubles,mydoubles+8); cout << "using default comparison:"; stable_sort (mydeque.begin(), mydeque.end()); for (id=mydeque.begin(); id!=mydeque.end(); ++id) cout << " " << *id; mydeque.assign(mydoubles,mydoubles+8); cout << "\nusing 'compare_as_ints' :"; stable_sort (mydeque.begin(), mydeque.end(), compare_as_ints); for (id=mydeque.begin(); id!=mydeque.end(); ++id) cout << " " << *id; cout << endl; return 0;}
myvector contains: 12 26 32 33 45 53 71 80using default comparison: 1.32 1.41 1.62 1.73 2.58 2.72 3.14 4.67using 'compare_as_ints' : 1.41 1.73 1.32 1.62 2.72 2.58 3.14 4.67
0 0
- STL_算法_对所有元素排序(sort、stable_sort)
- STL_算法(27)_对所有元素排序sort(b, e) sort(b, e, p) stable_sort(b, e) stable_sort(b, e, p)
- STL_算法_根据第n个元素排序(nth_element)
- STL_算法(29)_根据第n个元素排序
- STL_算法_元素计数(count、count_if)
- STL_算法_复制元素(copy、copy_backward)
- C++语法基础--泛型算法(generic algorithm)--对容器排序的算法sort(),stable_sort(),unique()
- STL_算法_局部排序(partial_sort、partial_sort_copy)
- STL_算法(28)_局部排序
- 链表的归并排序:来自STL_ list_ sort 算法
- STL中的排序算法 sort stable_sort patition_sort等
- STL中的排序算法 sort stable_sort patition_sort等
- STL中的排序算法 sort stable_sort patition_sort等
- STL中的排序算法 sort stable_sort patition_sort等
- STL_算法(16)_复制元素 copy() copy_backward()
- C++ STL 算法:对所有元素排序
- STL算法 -------- 对所有元素排序
- 实战c++中的vector系列--使用sort算法对vector进行排序(对vector<string>排序、使用稳定的排序std::stable_sort())
- 2.3.3优先级规律和特点
- centos开机自动启动SVN服务的方法
- Set up Git serve
- Main.storyboard常见警告
- Unity3D中JavaScript与C#对比
- STL_算法_对所有元素排序(sort、stable_sort)
- 2.3.4Python表达式
- 面向对象的7大基本原则
- Git
- AJAX中XMLHttpRequest对象详解(3)
- My First Android Development - FlappyAmusing
- 在iOS 8中使用UIAlertController
- centos
- Mysql配置为Master/Slave的常用维护命令