求助关于stl_heap
  • 板块学术版
  • 楼主Error_Eric
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/5/18 16:30
  • 上次更新2023/11/4 23:06:56
查看原帖
求助关于stl_heap
217300
Error_Eric楼主2021/5/18 16:30
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<vector>
#include<map>
using namespace std;
//...
#define pii pair<int,int>
vector<pii >pa,pb;
map<pii,int>m;
#define OP operator
bool OP<(pii ip,pii pb){return m[ip]<m[pb];}
bool OP>(pii ip,pii pb){return m[ip]>m[pb];}
void out(vector<pii >pd){//输出一个vector
    printf("%d >",pd.size());
    for(int i=0;i<pd.size();i++)if(m.count(pd[i]))
    printf("(%d,%d)[%d],",pd[i].first,pd[i].second,m[pd[i]]);putchar(10);
}
void t(){out(pa),out(pb),putchar(10);}
int main(){
    //...
    t();
    make_heap(pa.begin(),pa.end(),greater<pii >()),
    make_heap(pb.begin(),pb.end(),   less<pii >());
    t();
    //...
}

为什么会输出

3 >(-1,2)[0],(5,5)[2],(-1000000000,0)[9],
3 >(-1,2)[0],(5,5)[2],(-1000000000,0)[9],

3 >(-1000000000,0)[9],(5,5)[2],(-1,2)[0],
3 >(5,5)[2],(-1,2)[0],(-1000000000,0)[9],

而不是

3 >(-1,2)[0],(5,5)[2],(-1000000000,0)[9],
3 >(-1,2)[0],(5,5)[2],(-1000000000,0)[9],

3 >(-1000000000,0)[9],(5,5)[2],(-1,2)[0],
3 >(-1,2)[0],(5,5)[2],(-1000000000,0)[9],
2021/5/18 16:30
加载中...