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


最新文章

  1. SQL语句执行效率及分析(note)
  2. 最小化安装centos7不能执行ifconfig命令的解决方法
  3. ASP.NET Core 开发-Logging 使用NLog 写日志文件
  4. C语言中system()函数的用法总结(转)
  5. ROC和AUC介绍以及如何计算AUC
  6. kaggle之旧金山犯罪
  7. Cocos2d-x3.0游戏实例之《别救我》第四篇——乱入的主角
  8. chr()、unichr()和ord(),全半角转换,ValueError: unichr() arg not in range() (wide Python build)
  9. gradle 构建spring源码时候报错
  10. 1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
  11. Java中的static、final关键字
  12. Open source operational tools
  13. jsp 部署
  14. Spring AOP详解
  15. docker swarm 搭建与服务更新
  16. JQuery之左侧菜单
  17. Mac配置本地hadoop
  18. zabbix结合grafana打造炫酷监控界面
  19. 【源码阅读】VS调试mimikatz-改造法国神器mimikatz执行就获取明文密码
  20. Python爬虫实例(三)代理的使用

热门文章

  1. CF909B Segments
  2. exceptional c++ 读书笔记 一 . vector 的使用
  3. HDU-1042-N!(Java大法好 &amp;amp;&amp;amp; HDU大数水题)
  4. 启用QNX系统,海尔智能冰箱或成业界“宝马”
  5. 为什么网络银行不支持GNU/Linux操作系统下的浏览器操作
  6. Bash脚本中的操作符
  7. MVC发送邮件
  8. Swift String转Character数组
  9. linux删除多行
  10. poj--3678--Katu Puzzle(2-sat 建模)