STL函式集
阿新 • • 發佈:2020-07-14
nth_element函式
求第k大/小的排序函式,第k個前面的均比他小/大,後面的均比他大/小
#include<iostream> #include<algorithm> using namespace std; int main() { int a[]={1,3,4,5,2,9,8,7,10}; int i; cout<<"數列例如以下:"<<endl; for(i=0;i<9;i++) cout<<a[i]<<" "; cout<<endl; nth_element(a,a+5,a+9); for(i=0;i<9;i++) cout<<a[i]<<" "; cout<<endl<<"輸出第6小的數: "<<a[5]<<endl; //注意下標是從0開始計數的 nth_element(a,a+5,a+9,greater<int>()); for(i=0;i<9;i++) cout<<a[i]<<" "; cout<<endl<<"輸出第6大的數: "<<a[5]<<endl; //注意下標是從0開始計數的 system("pause"); return 0; }
全排序
字串的全排列
int main()
{
ll n;cin>>n;
string str="123456789";
string x;cin>>x;
ll cnt=0;
while(x!=str.substr(0,n)){
++cnt;
next_permutation(str.begin(),str.begin()+n);
}
cout<<cnt+1<<'\n';
}
陣列的全排列
int main() { int a[4]={1,4,2,3}; sort(a,a+4); int cnt=1; do{ cout<<cnt<<" "; for(int i=0;i<4;++i) cout<<a[i]<<" "; cout<<'\n'; ++cnt; }while(next_permutation(a,a+4)); }
參考部落格:https://blog.csdn.net/qian2213762498/article/details/79683905
erase函式
string 類
\(str.erase(x)\)消除包括x及以後的字元並返回\(str\)