如何使用C++的reverse和random_shuffle

 时间:2024-10-12 12:38:20

reverse(区间翻转)和 random_shuffle(随机打乱)都是在C++“algorithm”库中十分方便的函数,代码简洁,功能也很强大,隶属于 C++STL 的一部分那么,我们该如何使用这两个函数呢?该图片来自于网络

如何使用C++的reverse和random_shuffle

工具/原料

电脑

C++编译器

reverse

1、reverse,中文意思是“翻转”,这孀晏弁钾也正是它所实现的功能:区间翻转既然是在“algorithm”库中,就要在代码开头加上"#include<algorithm>"代码也十分简洁:reverse(首指针,尾指针);需要注意的是,reverse 所翻转的区间是左闭右开,即反转的时候,尾指针所指向的元素是不会包含在内的,这也几乎是所有 “algorithm”库中函数的共同性质如图,图中的 "a" 和 "a+10" 都是指针

如何使用C++的reverse和random_shuffle

2、如果我们需要翻转的不是数组,而是像 vector 之类的 STL 容器,那该怎么办呢?很简单,reverse 也支持迭代器,即reverse(v.begin(),v.end());而且 STL 容器也是左闭右开的,v.end() 不会存储任何元素如图

如何使用C++的reverse和random_shuffle

3、可不可以手写代码实现reverse的功能呢?当然可以,代码也很短,主要就是交换两个数

如何使用C++的reverse和random_shuffle
如何使用C++的reverse和random_shuffle

random_shuffle

1、random_shuffle,中文意思是“随机打乱”没错,random_shuffle 就是实现“随机打乱”的"include<algorithm>" 别忘了和 reverse 的实现方法差不多random_shuffle(首指针,尾指针);

如何使用C++的reverse和random_shuffle

2、同样的,random_shuffle 也支持迭代器拿 string 举例:random_shuffle(s.begin(),s.end()),是不是和 reverse 很像?如图

如何使用C++的reverse和random_shuffle

3、那么我们能不能手写random_shuffle 呢?可以,这个就要用到 "rand" 函数来保持它的随机性但也有极小的概率打乱后还是原来的序列

如何使用C++的reverse和random_shuffle

4、以上就是 reverse 和 random_shuffle 的使用方法及作用,这两个函数十分相似,除了名字和作用不同,几乎就没什么区别了该图片来自于网络

如何使用C++的reverse和random_shuffle
  • 使用C++ 将数据导入excel
  • matlab怎么合并两个矩阵_matlab矩阵拼接
  • 如果在MATLAB中画出一幅漂亮的地球模型图像?
  • 数字信号处理实验--如何使用CCS编译输出正弦波
  • 如何使用matlab软件对数据进行二维三次样条插值
  • 热门搜索
    高中生手抄报 庆祝六一手抄报 小学生读书手抄报 欢庆六一手抄报图片 关于阅读的手抄报 元宵手抄报 普通话手抄报内容 防灾减灾手抄报 民族团结手抄报图片 抗日手抄报