cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
random_shuffle()//重排,随机重排,打乱顺序
partition()分区,把符合规则的分成两个区域,比如奇数放一边,偶数放一边.默认之间的位置会变化
stable_partition(),稳定的分区,分区后,默认之间的位置不会变化,
比如:2,3,5,6,分区后,2依然在6的前面。3依然在5的前面 STL算法--变序性算法
reverse() 逆转
reverse_copy()一边复制一般逆转
rotate()旋转,某个位置开始前后交换位置
rotate(ivec2.begin(), ivec2.begin() + 2, ivec2.end());
1,2,3,4,5,6,7,8,9,
rotate后:
3,4,5,6,7,8,9,1,2, rotate_copy()一边复制一般旋转 、、、
next_permutation()
prev_permutation()
random_shuffle()
partition()
stable_partition()
/*cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
random_shuffle()//重排,随机重排,打乱顺序
partition()分区,把符合规则的分成两个区域,比如奇数放一边,偶数放一边.默认之间的位置会变化
stable_partition(),稳定的分区,分区后,默认之间的位置不会变化,
比如:2,3,5,6,分区后,2依然在6的前面。3依然在5的前面 STL算法--变序性算法
reverse() 逆转
reverse_copy()一边复制一般逆转
rotate()旋转,某个位置开始前后交换位置
rotate(ivec2.begin(), ivec2.begin() + 2, ivec2.end());
1,2,3,4,5,6,7,8,9,
rotate后:
3,4,5,6,7,8,9,1,2, rotate_copy()一边复制一般旋转 、、、
next_permutation()
prev_permutation()
random_shuffle()
partition()
stable_partition() */ #include <iostream>
#include <algorithm>
#include <vector>
#include <functional> using namespace std; template < typename TT5>
void print1(TT5 &ilist)
{
for (TT5::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
{
cout << *iter << ' '; }
cout << endl;
} int main()
{
vector<int> ivec,ivec2,ivec3;
for (int i = ; i <= ; ++i)
{
ivec.push_back(i); }
ivec3 = ivec2 = ivec;
print1(ivec); random_shuffle(ivec.begin(),ivec.end());
cout << "重排后:" << endl;
print1(ivec);
cout << "ivec2一般分区前:" << endl;
print1(ivec2); cout << "分区演示:偶数放左,奇数放右边" << endl; //预定义函数对象:not1(bind2nd(modulus<int>(), 2))
//https://blog.csdn.net/txwtech/article/details/104383237
partition(ivec2.begin(), ivec2.end(), not1(bind2nd(modulus<int>(), )));
cout << "ivec2一般分区后:" << endl;
print1(ivec2); cout << "稳定分区前ivec3:" << endl;
print1(ivec3); stable_partition(ivec3.begin(), ivec3.end(), not1(bind2nd(modulus<int>(), )));
cout << "稳定分区后ivec3:" << endl;
print1(ivec3);
return ;
}
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition的更多相关文章
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...
- cb47a_c++_STL_算法_排列组合next_prev_permutation
cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...
- cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance
cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...
- cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个.uniqu ...
- cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
- cb42a_c++_STL_算法_替换_replace
cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全 ...
随机推荐
- COLA的扩展性使用和源码研究
cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化. 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体: 必须以ExtPt结尾,表示一个扩展点. 比如,我定义一个云枢的 ...
- [MSSQL] [EntityFramework(.Net Core)] 自增长id字段,无法插入数据
IDENTITY_INSERT 为 OFF,无法插入数据, 类似的错误,解决记录: 网上查了下,都是 Code First 模式下的解决方案, 如:在 DBContext 的 OnModelCreat ...
- 【Java】向*.txt文档里面重复添加同一个字符串
闺蜜说让我用代码写五万个对不起给她~~ import java.io.FileWriter; import java.io.IOException; /** * Created by lenovo o ...
- 前端基础进阶(十三):透彻掌握Promise的使用,读这篇就够了
Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我们不能 ...
- vue采用history路由的服务器部署问题
发现部署问题 在部署的时候发现打开的页面是空白 之前部署原理 之前的页面都是作为静态文件形式打包上传到服务器上 http://www.xiedashuaige.cn/bolg2.0/#/home 就和 ...
- 数据库-第八章 数据库编程-8.4 ODBC编程
ODBC编程 一.ODBC概述 二.ODBC工作原理概述 1.用户应用程序 2.ODBC驱动程序管理器 3.数据库驱动程序 4.数据源管理 5.小结 三.ODBC API基础 1.函数概述 2.句柄及 ...
- python的转义
print('"I\'m OK"') print("I'm OK") print('"I"\'m \"OK"') &qu ...
- Blazor WebAssembly 修仙之途 - 组件与数据绑定
一.前言 在第一篇文章中,有提到过组件(Component)这个概念.组件在 Blazor 中是必不可少的,UI 全靠它组装起来,和前端的 JS 组件是一个意思,比如:vue component.re ...
- Alpha冲刺——总结随笔
这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 Alpha冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.项目预期计划: ...
- Spring Boot笔记(五) SpringBoot 集成Lombok 插件
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 为了减少代码量,为当前项目添加 lombok 来优雅编码 Lombok 插件安装: a . 添加依赖: ...