STL自定义比较器
来源:互联网 发布:手机如何清除数据 编辑:程序博客网 时间:2024/06/05 09:13
对于下边这个结构我们需要按照age排序
struct Person{ string name; int age;}
//自定义的比较器struct compareByAge{ bool operator()(const Person& p1,const Person p2) { return p1.age<p2.age; }}
//构造vectorvector<Person>vec{p1,p2....};sort(vec.begin(),vec.end(),compareByAge());//排序传入我们自定义的比较器
map按照value排序
map内部的实现使用的是树,不能够直接排序,我们可以将其放在一个vector中,然后自定义一个比较器去排序
map<string,int>mapTest;mapTest["zhangsan"]=2;mapTest["lisi"]=3;...vector<pair<string,int>>vec{mapTest.begin(),mapTest.end()};//初始化vector//定义比较器struct compare{ bool operator()(const pair<string,int>&p1,const pair<string,int>&p2) { return p1.second<p2.second;//second为value }}//排序sort(vec.begin(),vec.end(),compare());//调用自己的比较器函数
我们来看一个实例:
struct ptr_compare//自定义比较器按照key中的指针指向的内容排序{ bool operator()(const shared_ptr<string>&p1,const shared_ptr<string>&p2) { return *p1>*p2; }};struct comp//自定义比较器按照value排序{ bool operator()(const pair<shared_ptr<string>,string>&p1,const pair<shared_ptr<string>,string>&p2) { return p1.second<p2.second; }};int main(){ map<shared_ptr<string>,string,ptr_compare>ptr_map;//按照key中的指针指向的数据排序 shared_ptr<string>s1{new string{"hello"}}; shared_ptr<string>s2{new string{"world"}}; shared_ptr<string>s3{new string{"just"}}; shared_ptr<string>s4{new string{"for"}}; shared_ptr<string>s5{new string{"test"}}; ptr_map[s1]="0"; ptr_map[s2]="1"; ptr_map[s3]="2"; ptr_map[s4]="3"; for_each(ptr_map.begin(),ptr_map.end(),[](pair<shared_ptr<string>,string>p) { cout<<*p.first<<" "<<p.second<<endl; }); vector<pair<shared_ptr<string>,string>>vec(ptr_map.begin(),ptr_map.end());//将map中的pair数据放到vector中 sort(vec.begin(),vec.end(),comp());//使用自定义比较器 for_each(vec.begin(),vec.end(),[](pair<shared_ptr<string>,string>p){ cout<<*p.first<<" "<<p.second<<endl; });}
阅读全文
0 0
- STL自定义比较器
- STL 自定义比较函数
- C++ STL set自定义比较函数
- stl中map自定义比较函数
- C++ STL set自定义比较函数
- STL:set中使用自定义比较操作
- stl中map自定义比较函数
- stl中各种容器的自定义比较函数
- STL中sort、priority_queue、map、set的自定义比较函数
- STL中sort、priority_queue、map、set的自定义比较函数
- stl排序函数用户自定义比较函数扩展
- STL 中的 set 使用自定义比较运算符
- 利用STL中的Sort比较自定义结构体
- C++ 使用STL时自定义比较函数cmp
- 对比理解一下STL的自定义比较方法
- 自定义比较器
- MapReduce-自定义比较器
- 自定义比较器
- Vim 使用特殊符号快速删除指定字符,文件加密,粘贴代码缩进解决
- 自己写了一个flume小文件合并脚本,解决hdfs小文件过多问题
- win10下配置Tensorflow1.4
- 编程思想(一):面向对象思想及衍生特性
- 蓝桥杯 历届试题 分糖果
- STL自定义比较器
- Mac下安装Elasticsearch极简指南
- 自定义一个月份选择器插件
- Linux的入门学习(二)
- MarkDown的一些快捷键
- git管理gitee从入门
- 小白学数据结构——一、线性结构(栈和队列)
- php结合redis实现高并发下的抢购、秒杀功能
- PTA-地下迷宫探索(DFS,水题)