如果你的函数需要使用 STL 作为参数,请为形参加上引用。
如不应这样写:
void reset(multiset<int,greater<int> > s,Segment_tree_node& x){
clear(x);
auto it=s.begin();
for(int i=1;i<=k;i++,it++){
if(it==s.end()) break;
x.kth[i]=*it;
}
}
而应这样:
void reset(multiset<int,greater<int> >& s,Segment_tree_node& x){
clear(x);
auto it=s.begin();
for(int i=1;i<=k;i++,it++){
if(it==s.end()) break;
x.kth[i]=*it;
}
}