STL_算法_对全部元素排序(sort、stable_sort)
2024-10-11 11:11:05
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 80
using default comparison: 1.32 1.41 1.62 1.73 2.58 2.72 3.14 4.67
using 'compare_as_ints' : 1.41 1.73 1.32 1.62 2.72 2.58 3.14 4.67
最新文章
- SQL语句执行效率及分析(note)
- 最小化安装centos7不能执行ifconfig命令的解决方法
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
- C语言中system()函数的用法总结(转)
- ROC和AUC介绍以及如何计算AUC
- kaggle之旧金山犯罪
- Cocos2d-x3.0游戏实例之《别救我》第四篇——乱入的主角
- chr()、unichr()和ord(),全半角转换,ValueError: unichr() arg not in range() (wide Python build)
- gradle 构建spring源码时候报错
- 1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
- Java中的static、final关键字
- Open source operational tools
- jsp 部署
- Spring AOP详解
- docker swarm 搭建与服务更新
- JQuery之左侧菜单
- Mac配置本地hadoop
- zabbix结合grafana打造炫酷监控界面
- 【源码阅读】VS调试mimikatz-改造法国神器mimikatz执行就获取明文密码
- Python爬虫实例(三)代理的使用
热门文章
- CF909B Segments
- exceptional c++ 读书笔记 一 . vector 的使用
- HDU-1042-N!(Java大法好 &;amp;&;amp; HDU大数水题)
- 启用QNX系统,海尔智能冰箱或成业界“宝马”
- 为什么网络银行不支持GNU/Linux操作系统下的浏览器操作
- Bash脚本中的操作符
- MVC发送邮件
- Swift String转Character数组
- linux删除多行
- poj--3678--Katu Puzzle(2-sat 建模)