版权声明:欢迎交流,本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42513339/article/details/89251861
需要包含头文件:
#include<algorithm>
reverse()
reverse(beg,end):reverse()会将区间[beg,end)内的元素全部逆序;
例子1:反转string
#include <iostream>
using namespace std;
#include<string>
#include<algorithm>
int main()
{
string s = "abcdefg";
reverse(s.begin(),s.end());
cout<<s; //输出gfedcba
return 0;
}
例子2:反转字符数组
#include <iostream>
using namespace std;
#include<algorithm>
int main()
{
char s[] = "abcdefg";
int N =sizeof(s)/sizeof(s[0]);
reverse(s,s+N-1);
cout<<s; //输出gfedcba
return 0;
}
例子3:反转数组
#include <iostream>
using namespace std;
#include<algorithm>
int main()
{
int s[] = {1,2,3,4,5,6,7,8,9};
reverse(s,s+9);
for(int i =0; i< sizeof(s)/sizeof(s[0]);i++)
cout<<s[i]<<" ";//输出9 8 7 6 5 4 3 2 1
return 0;
}
reverse_copy()
reverse_copy(sourceBeg,sourceEnd,destBeg)
reverse_copy()会将源区间[sourceBeg,sourceEnd)内的元素复制到"以destBeg起始的目标区间",并在复制过程中颠倒安置次序;(注:原数组不变)
这里只放了一个例子,其他例子也类似
#include <iostream>
using namespace std;
#include<algorithm>
int main()
{
char s[] = "abcdefg";
int N =sizeof(s)/sizeof(s[0]);
char s2[N];
reverse_copy(s,s+N-1,s2);
cout<<s<<endl<<s2;//s输出abcdfeg,s2输出gfedcba
return 0;
}