vector:
元素为 int 之类的:
vector<int>vec;
sort(vec.begin(),vec.end(),greater<int>()); //降序
sort(vec.begin(),vec.end(),less<int>()); //升序
元素为pair之类的(struct 同理,也是写个cmp即可):
vector<pair<int,int> >vec;
bool cmp(const pair<int,int>a, const pair<int,int>b)
{
return a.second>b.second;
}
sort(vec.begin(),vec.end(),cmp); //按 pair 第二个元素降序
priority_queue:
priority_queue<int,vector<int>,greater<int> > qu; //升序 (因为 默认是降序,所以greater的作用与vector和set相反)
priority_queue<int,vector<int>,less<int> > qd; //降序
set:
set<int,less<int> >st_up; //升序 (直接就在定义时设置)
set<int,greater<int> >st_dn; //降序
样例:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int,greater<int> >st; //dn
for(int i=0;i<10;i++)
st.insert(i);
for(auto i=st.begin();i!=st.end();i++) //注意set中元素的输出方式
cout<<*i<<" ";
cout<<endl;
}