intm_i32ID; booloperator<(constTItem& rhs)const// 升序排序时必须写的函数 { returnm_i32Type < rhs.m_i32Type; } booloperator>(constTItem& rhs)const// 降序排序时必须写的函数 { returnm_i32Type > rhs.m_i32Type; } }; intmain() { vector<TItem> stItemVec; TItem stItem1; stItem1...
C++中vector,set,map自定义排序 一、vector排序 vector支持cmp,就类似数组,可以直接sort。 1#include <iostream>2#include <algorithm>3#include <string>4#include <string.h>5#include <math.h>6#include 7#include <queue>8#include <stack>9#include <set>10typedeflonglongll;11usingnamespacestd;12boolc...
如果你自己定义的容器也支持随机型迭代器,那么使用排序算法是没有任何问题的。 对于list容器,list自带一个sort成员函数list::sort(). 它和算法函数中的sort差不多,但是list::sort是基于指针的方式排序,也就是说,所有的数据移动和比较都是此用指针的方式实现,因此排序后的迭代器一直保持有效(vector中sort后的迭代器...
1.排序: (1)普通排序 升序:sort(vec.begin(),vec.end()) 降序:sort(vec.rbegin(),vec.rend()) rbegin()表示指向数组尾的迭代器,.rend()表示指向数组头前一个位置的迭代器 (2)自定义排序: typedefstructNODE{intx;inty;}node;boolcomp(node&a,node&b){returna.x...
1.定义 使用vector,需要添加头文件#include <vector>。 单独定义一个vector: vector<typename> name; 相当于是一维数组name[SIZE],只不过长度可以变化,和一维数组一样,typename可以是任何数据类型,例如int、char、double、结构体、也可以是STL标准容器,例如vector、set、queue,需要注意的是,如果typename也是一个STL容器...
ctn[i].m_uiType);return 0 ;} 以上⽅法就可以实现升序排序,输出结果为 1 2 3 降序排序结果3 2 1。⽅法2 :不修改结构体或类的定义部分,我们⽤函数对象来实现:#include "stdafx.h"#include <vector> #include <algorithm> #include <functional> using namespace std;
),vec.end(),Comp),这样就降序排序。9 ②而当vector的数据类型为自定义结构体类型时,怎样实现升序与降序排列呢?有两种方法:方法1:修改结构体或类的定义部分,sort函数实现方法2 :类或结构体外定义函数,使用sort调用函数来实现:如图所示:注意事项 清楚vector中存储结构;熟悉vector主要操作函数;多写 ...
p.push_back(make_pair(9, 'c'));p.push_back(make_pair(10, 't'));p.push_back(make_pair(17, 'y'));p.push_back(make_pair(10, 'b'));sort(p.begin(), p.end(), cmp);//按照第⼀个元素排序 for (auto i = 0; i<p.size(); i++)cout << p[i].first << "" << p[...
include <iostream>#include <vector>#include <algorithm>using namespace std;class AbA{public:int m_nA;int m_nB;AbA(int a, int b) : m_nA(a), m_nB(b){}};ostream& operator << (ostream& os, const AbA& ra){os << ra.m_nA << " " << ra.m_nB;return os;}// ...