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\)
list容器
-
list是双向循环链表,内存分配非连续的
list.push_front()
在前面添加一个元素list.pop_front()
删除第一个元素list.push_back()
在最后插入一个元素list.pop_back()
删除最后一个元素list.front()
返回第一个元素list.back()
返回最后一个元素list.sort()
排序list.erase()
删除迭代器指向的元素,并返回下一个字符的位置list.insert(,)
在迭代器指的位置插入元素,或插入n个在迭代器所指位置
\(it=lis.erase(it)==lis.erase(it++)\)
原文链接: https://www.cnblogs.com/waryan/p/13298787.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/365880
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!