标签:abs cout memset 字符串长度 namespace mem iostream 逆转 实现
swap(x,y)交换x和y的值
reverse(it,it2)可以将数组指针在[it,it2)之间的元素或者容器的迭代器在[it,it2)范围内进行元素反转。
对于数组中的元素
# include <iostream>
# include <algorithm>
using namespace std;
int main(void)
{
int a[5]={1,3,2,3,4};
reverse(a,a+4);//将a[0]~a[3]逆转
for(int i=0;i<5;i++)
{
cout<<*(a+i)<<endl;
}
return 0;
}
对于容器中元素
# include <iostream>
# include <algorithm>
using namespace std;
int main(void)
{
string s="abcdefghig";
reverse(s.begin(),s.end());
cout<<s<<endl;
return 0;
}
next_permutation()给出一个序列在全排列的下一个序列
# include <iostream>
# include <algorithm>
using namespace std;
int main(void)
{
int a[10]={1,2,3};
do
{
cout<<a[0]<<' '<<a[1]<<' '<<a[2]<<endl;
}
while(next_permutation(a,a+3));
return 0;
}
可以将数组或者容器中某个区间赋值为某个相同的值,和memset不同的是,这里的赋值可以是数组类型范围内任意的值
int a[5]={1,2,3,4,5};
fill(a,a+5,233);//将a[0]~a[4]全部赋值为233
sort(首地址(必填),尾地址的后一个地址(必填),比较函数(非必填))
int a[6]={1,2,3,4,5,6};
sort(a,a+4);//对a[0]~a[3]进行排序
如果不填比较函数,会自动从小到大进行排序
bool cmp(int a,int b)
{
return a>b;//可以理解为a>b的时候a放在b的前面
}
int a[6]={1,2,3,4,5,6};
sort(a,a+4,cmp);
struct node{
int x,y;
}ssd[10];
bool cmp1(node a,node b){
return a.x>b.x;
}
bool cmp2(node a,node b){
if(a.x!=b.x)
return a.x>b.y;//a.x和b.x和不相等的时候按照x从小到大排序
else
return a.y<b.y;//否则按照y从大到小排序
}
ssd[0].x=1;
ssd[0].y=2;
ssd[1].x=4;
ssd[1].y=2;
ssd[2].x=8;
ssd[2].y=4;
sort(ssd,ssd+3,cmp1);
string str[3]={"aa","bb","cc"};
sort(str,str+3);//按照字典序进行排序
bool cmp(string a,string b){
return a.length()>b.length();
}
sort(str,str+3,cmp);
lower_bound()需要一个有序容器或者数组,其寻找[first,end)范围内第一个大于等于val的元素的位置,如果是数组就返回指针,如果是容器就返回迭代器
upper_bound()需要一个有序容器或者数组,其寻找[first,end)范围内第一个大于val的元素的位置,如果是数组就返回指针,如果是容器就返回迭代器
标签:abs cout memset 字符串长度 namespace mem iostream 逆转 实现
原文地址:https://www.cnblogs.com/mengxiaoleng/p/11405807.html