SET排序重定義及迭代器運算
阿新 • • 發佈:2018-12-15
#include<bits/stdc++.h> using namespace std; typedef struct node node; struct node{ int x; int y; }; struct cmp{ bool operator()(const node& a, const node& b){ return a.x<b.x ; } }; int main(){ set<node,cmp>s; s.insert(node{1,2});s.insert(node{3,4}); set<node,cmp>::iterator it=s.begin(); for(it;it!=s.end();it++){ cout<<it->x<<' '<<it->y<<endl; } system("pause"); return 0 ; }
class Solution { public: multiset<int> s; vector<int> maxInWindows(const vector<int>& num, unsigned int size) { vector<int> ans; if(num.size()==0 || size==0 || num.size()<size)return ans; int len=num.size(),mx=num[0]; for(int i=0;i<size;i++){ s.insert(num[i]); mx=mx>num[i]?mx:num[i]; } ans.push_back(mx); int l=0,r=size; for(int i=size;i<len;i++){ s.erase(num[l++]); s.insert(num[r++]); multiset<int>::iterator ip = s.end(); // 返回指向最後一個元素的迭代器 --ip; ans.push_back(*ip); } return ans; } };