总结一下最近经常用的函数
#include<iostream>
#include<set>
#include<algorithm>//binary_serach next_permutation fill
#include<queue>//priority_queue
#include<stdlib.h>
#include<string.h>//memset
using namespace std;
//二分查找(排序 set priority_queue sort )排列 fill() memset
//sort cmp
bool cmp(int a,int b){
return a>b;//最大顶降序
return a<b;//最小顶升序 默认的
}
//
int main(){
int a[5]={3,5,1,2,9};
//二分查找
int j =binary_search(a,a+5,1);//判断有没有这个元素
cout<<j;
int big1=lower_bound(a,a+5,1)-a;//查找大于等于 1的位置
int big2=upper_bound(a,a+5,1)-a;//。。大于。。
cout<<"\n"<<big1<<"\n"<<big2;
//
//排 序 的 实 现
set<int>s;//默认升序 最小顶
priority_queue<int>pque;//默认降序 最大顶
priority_queue <int,vector<int>,less<int> >pque1;//升序 最小顶
for(int i=0;i<5;i++){
s.insert(a[i]);
pque.push(a[i]);
}
//
set<int>::iterator it=s.begin();
cout<<"\n";
for(int i=0;i<5;i++){
cout<<*(it++)<<" "<<pque.top()<<"\n";
pque.pop();
}
//
//sort
sort(a,a+5,cmp);//a+5是指到这个位置不做操作
for(int i=0;i<5;i++){
cout<<a[i]<<"\n";
}
//
//
//排列
system("cls");//清屏
int jl=0;
do{jl++;
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<"\n";
}while(next_permutation(a,a+5,cmp));
cout<<jl<<"\n";//排列次数
//默认 next_permutation是从当前状态排到最大顶 可用cmp
//
system("cls");
fill(a,a+5,0);//memset同理
for(int i=0;i<5;i++){
cout<<a[i]<<"\n";
}
}