vector排序,支持子数组排序,sort(vec.begin(), ve.begin()+num, cmp)
#include<iostream> #include<vector> #include<list> #include <algorithm> using namespace std; typedef struct _MyNode{ int x; int y; //必须用到类型名称_MyNode,这就是使用typedef的好处 _MyNode(int x, int y){ this->x=x; this->y=y; } }MyNode; void printList(vector<MyNode> l) { vector<MyNode>::iterator iter=l.begin(); while(iter!=l.end()){ cout<<iter->x<<","<<iter->y<<endl; iter++; } cout<<endl; } bool cmp(MyNode n1, MyNode n2){ if(n1.x==n2.x){ return n1.y<n2.y; } return n1.x<n2.x; } int main(){ //1. 自定义排序 MyNode n1(2,3), n2(1,2), n3(3,9); vector<MyNode> l; l.push_back(n1); l.push_back(n2); l.push_back(n3); printList(l); sort(l.begin(), l.end(), cmp); printList(l); //2. 自然顺序排序 vector<int> l2; l2.push_back(4); l2.push_back(3); l2.push_back(1); l2.push_back(6); sort(l.begin(), l.begin()+3); /* vector<int>::iterator iter2=l2.begin(); while(iter2!=l2.end()){ cout<<*iter2<<endl; } */ cout<<endl; return 0; }
list排序,只支持整体排序,l.sort(cmp)
#include<iostream> #include<vector> #include<list> #include <algorithm> using namespace std; typedef struct _MyNode{ int x; int y; _MyNode(int x, int y){ this->x=x; this->y=y; } }MyNode; void printList(list<MyNode> l) { list<MyNode>::iterator iter=l.begin(); while(iter!=l.end()){ cout<<iter->x<<","<<iter->y<<endl; iter++; } cout<<endl; } bool cmp(MyNode n1, MyNode n2){ if(n1.x==n2.x){ return n1.y<n2.y; } return n1.x<n2.x; } int main(){ //1. list<...>只能全部排序, 而且调用的是list的public方法sort(cmp),不是<algorithm>头文件中的函数sort() MyNode n1(2,3), n2(1,2), n3(3,9); list<MyNode> l; l.push_back(n1); l.push_back(n2); l.push_back(n3); printList(l); l.sort(cmp); printList(l); return 0; }
相关推荐
STL对于C++编程者而言,相信都非常喜爱吧。但是其中的排序准则,你亲自试过修改吗?如何修改?请参考本文档的思路和实现过程吧。
NULL 博文链接:https://jacky-dai.iteye.com/blog/2308000
STL_Sort 排序的资料 STL_Sort 排序的资料 STL_Sort 排序的资料
详细解说 STL 排序(Sort)
简单举例普通数组、vector、对象排序 ,列举了默认排序、自定义排序,在自定义排序函数注释部分 点明了容易出问题的地方
详细解说STL排序 详细解说STL排序 详细解说STL排序
STL中的set和map都是自动排序的,但是如何修改其排序准则呢?本文档给出了修改思路和具体的实现代码。对于STL编程爱好者而言,实在是不可多得的好资料啊。
使用VC++控制台应用程序编写,测试了:vector对象的排序,对象中的大小无序,有重复。
用STl实现基数排序算法 功能强大非常适合数据结构课程设计
STL中的排序算法一览
对于C++的STL的双向链表,排序算法有的模板并没有实现,因此给出来,大家参考。
在matlab实现STL分层,自定义厚度,参考意义
详细解说 STL 排序,可以下载看看。了解多点stl排序问题
C++11中有无序map即: unordered_map 可以不自动排序, 那么C++98中只有map 如何避免自动排序。
一个定义了整数排序的工程,相比课本上的要更加高效和简洁
用STL实现排序,里面用到Set , vector 等,程序简短,高效。
该程序采用STL的sort排序函数,对CSV中的数据进行排序(排序时不包括首行(第0行)。可以按字符、数值和IP排序。排序方式还包括普通排序(整行作为一个参数进行比较)、将整行数据从指定列开始作为字符串起始按字符...
随便写的一个基数排序算法,很简单,用STL实现
基于STL 文件数据切割排序方法的研究,丁秉辉,邓中亮,STL文件是对CAD实体数据模型的三角形网格化处理。现在已经成为CAD数据交换的标准文件之一。在喷涂机器人控制软件的应用中,