reverse 将区间内的元素颠倒顺序rotate 将区间内的元素旋转 vector<int> v{2, 4, 2, 0, 5, 10, 7, 3, 7, 1};sort 0 1 2 2 3 4 5 7 7 10 简单地旋转到左侧 1 2 2 3 4 5 7 7 10 0 rotate(v.begin(), v.begin() + 1, v.end());简单地旋转到右侧 0 1 2 2 3 4 5 7 7 10 rotate(v.rbegin(), v.rbegin() + 1, v.rend());int digits[] = {3, 1, 4, 1, 5};返回false bool is_sorted( begin(digits), end(digits)) lower_bound 返回指向第一个不小于给定值的元素的迭代器 upper_bound 返回指向第一个大于给定值的元素的迭代器 binary_search 判断一个元素是否在区间内 int a[]={1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6};vector<int> data = { 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6 };int lower = lower_bound(data.begin(), data.end(), 4)-data.begin();int upper = upper_bound(data.begin(), data.end(), 4)-data.begin();bool flag = binary_search(a,a+13,1);int lower2 = lower_bound(a, a+13, 4)-a;int upper2 = upper_bound(a, a+13, 4)-a;cout<<lower<<" "<<upper<<endl;cout<<lower2<<" "<<upper2<<endl;cout<<flag<<endl;vector<int> v1 = { 1, 1, 2, 3, 3, 3 },v2={ 3, 4, 4, 4, 5, 5, 6};// 归并 合并两个已排序的区间 vector<int> dst;merge(v1.begin(), v1.end(), v2.begin(), v2.end(), back_inserter(dst));set_difference 计算两个集合的差集 set_intersection 计算两个集合的交集 set_symmetric_difference 计算两个集合的对称差 set_union 计算两个集合的并集 vector<int> v1 {1, 2, 5, 5, 5, 9};vector<int> v2 {2, 5, 7};vector<int> diff;set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), inserter(diff, diff.begin()));vector<int> v1{1,2,3,4,5,6,7,8};vector<int> v2{5,7,9,10};sort(v1.begin(), v1.end());sort(v2.begin(), v2.end());vector<int> v_intersection;set_intersection(v1.begin(), v1.end(),v2.begin(), v2.end(),back_inserter(v_intersection));max_element 返回区间内的最大元素 min_element 返回区间内的最小元素 vector<int> v{ 3, 1, -14, 1, 5, 9 };int a[]={1,2,3,4,5,7};vector<int>::iterator result;result = max_element(v.begin(), v.end());int x=*max_element(a, a+6);int *y=max_element(a, a+6);is_permutation 判断一个序列是否为另一个序列的排列组合 next_permutation 按字典顺序产生区间内元素下一个较大的排列组合 prev_permutation 按字典顺序产生区间内元素下一个较小的排列组合 vector<int> v1{1, 2, 3, 4, 5};vector<int> v2{3, 5, 4, 1, 2};bool flag=is_permutation(v1.begin(), v1.end(), v2.begin()) string s = "aba";sort(s.begin(), s.end());do { cout << s << '\n';} while(next_permutation(s.begin(), s.end()));