//
#include<algorithm> // 头文件01 reverse();01 数组 reverse( size_t first,size_t last ); // 对 [ first,last ) 翻转01len=sizeof( str )/sizeof( str[0] ); // == strlen( str ) // 一维字符数组reverse( str,str+len );02reverse( a,a+len ); 02 容器 reverse( iterator first,iterstor last ); // 对 [ first,last ) 翻转01 reverse( s.begin(),s.end() );02 reverse_copy(); // 原 数组/容器 不变01 数组 T* reverse_copy( size_t first,size_t last,T* a ); 01 一边对 [ first,last ) 翻转 一边拷贝至 a02 a 可以是任意有意义的指针03 return a+( last-fisrt ) 的下一位置指针 // a+len+102 容器 iterator reverse_copy( iterator first,iterstor last,iterator c ); 01 一边对 [ first,last ) 翻转 一边拷贝至 c02 c 可以是任意有意义的迭代器03 return c+( last-fisrt ) 的下一位置迭代器 // c+len+1list 提供了一个等效成员函数 reverse() 重新安排指针 // 不是重新赋值元素 性能更佳变序性算法01 改变元素的次序 但不改变元素的值 02 不能用于关联式容器 // 在关联式容器中 元素有一定的次序 不能随意改动
// eg
#include<bits/stdc++.h>
using namespace std;string::iterator it;int main()
{char s1[]="123456";char s2[]="abc";char* p=reverse_copy( s2,s2+strlen(s2),s1+2 );cout<<"s1 "<<s1<<' '<<*p<<endl;string s3="123456";string s4="abc";it=reverse_copy( s4.begin(),s4.end(),s3.begin()+2 );cout<<"s3 "<<s3<<' '<<*it<<endl;return 0;
}
// s1 12cba6 6
// s3 12cba6 6