#include<iostream>
#include<map>
#include<string>
#include<climits>
#include<set>
#include<queue>
#include<cstring>
using namespace std;
struct node{
string s;
int cnt;
int time;
node(){
}
node(string a,int b,int c):s(a),cnt(b),time(c){
}
// bool operator < (const node & b) const{
// if(cnt>b.cnt) return true;
// if(cnt<b.cnt) return false;
// return time<b.time;
// }
};
struct cmp{
bool operator()(const node &a,const node &b) const
{
if(a.cnt<b.cnt) return false;
if(a.cnt>b.cnt) return true;
return a.time<b.time;
}
};
int main()
{
int t,n;
cin>>t;
set<node,cmp> st;
while(t--){
cin>>n;
string s;
string ans;
int c;
st.clear();
for(int i=0;i<n;i++){
cin>>s>>c;
node nd(s,c,i);
if(st.empty()) st.insert(nd);
else{
int ok=0;
for(set<node,cmp>::iterator it=st.begin();it
set自定义比较函数
该篇博客主要展示了如何在C++中为set自定义比较函数,通过struct cmp实现节点按照计数和时间戳的优先级进行排序,并在main函数中进行了实际操作示例,用于解决字符串出现次数和时间顺序的问题。
摘要由CSDN通过智能技术生成