当前位置: 首页 > wzjs >正文

做网站常用什么软件磁力下载

做网站常用什么软件,磁力下载,福州做网站外包团队,做手机网站一般要多少钱std::shuffle 的使用 std::shuffle 是 C 标准库中的一个函数,用于对容器中的元素进行随机排列(洗牌)。它的实现基于现代随机数生成器,因此比 std::random_shuffle 更安全和灵活(std::random_shuffle 在 C14 被弃用&am…

std::shuffle 的使用

std::shuffle 是 C++ 标准库中的一个函数,用于对容器中的元素进行随机排列(洗牌)。它的实现基于现代随机数生成器,因此比 std::random_shuffle 更安全和灵活(std::random_shuffle 在 C++14 被弃用,C++17 后被移除)。


1. 语法

#include <algorithm>
#include <random>std::shuffle(RandomIt first, RandomIt last, URBG&& g);
  • firstlast:表示要随机打乱的范围([first, last))。
  • g:随机数生成器,必须符合 UniformRandomBitGenerator(如 std::mt19937)。
  • 返回值:无(函数会直接修改输入范围的内容)。

2. 使用示例

#include <iostream>
#include <vector>
#include <algorithm>
#include <random>  // 需要包含 <random> 头文件int main() {std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9};// 创建随机数生成器std::random_device rd;  // 随机设备(硬件熵源)std::mt19937 g(rd());   // 梅森旋转算法(常用的随机数引擎)// 打乱顺序std::shuffle(vec.begin(), vec.end(), g);// 输出打乱后的结果std::cout << "Shuffled vector: ";for (int num : vec) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

3. 代码解析

  1. 创建随机数生成器

    • std::random_device rd;:用于生成种子。
    • std::mt19937 g(rd());:使用梅森旋转算法(Mersenne Twister)作为伪随机数引擎。
  2. 调用 std::shuffle 进行洗牌

    • std::shuffle(vec.begin(), vec.end(), g); 重新打乱 vec 中的元素顺序。
  3. 打印打乱后的数组

    • 遍历并输出 vec

4. 示例输出

Shuffled vector: 3 7 5 9 1 4 2 8 6

(输出的顺序是随机的,每次运行结果可能不同。)


5. 重要说明

  1. 为什么不用 std::random_shuffle

    • std::random_shuffle 需要内部调用 rand(),它的随机性较弱,而且 rand() 不是线程安全的。
    • std::shuffle 允许使用高质量的随机数生成器(如 std::mt19937)。
  2. std::mt19937 vs std::default_random_engine

    • std::default_random_engine 可能因不同的编译器实现不同,因此推荐使用 std::mt19937
  3. 如何使用固定种子进行可复现的随机洗牌?

    std::mt19937 g(42);  // 42 作为固定的随机种子
    std::shuffle(vec.begin(), vec.end(), g);
    

    这样每次运行代码都会得到相同的打乱结果。


6. 适用场景

  • 随机排序数据
  • 生成随机测试用例
  • 洗牌(如扑克牌游戏)
  • 打乱数据以避免排序偏差(如机器学习数据预处理)

7. 结论

std::shuffle 是现代 C++ 中推荐的随机洗牌方法,结合 std::mt19937 可以提供高质量的随机性,适用于各种随机排列的场景。

🚀 推荐使用 std::shuffle 代替 std::random_shuffle,并搭配 std::mt19937 以获得更好的随机性和可控性!

http://www.dtcms.com/wzjs/435521.html

相关文章:

  • 网站备案幕布拍照广州推广服务
  • 四川省建设主管部门网站网络营销推广方案模板
  • 深圳做网站公司排名泉州seo外包
  • 校园网站建设初探论文关键词优化排名软件案例
  • wordpress页面图片轮播图惠州seo怎么做
  • 郑州建材公司网站建设如何做百度推广
  • 源码屋整站源码软件开发公司排行榜
  • 东台做淘宝网站推广专员是做什么的
  • 培训收费网站建设如何推广公司网站
  • 北京网站的建设汕头seo外包公司
  • 潍坊网站制作怎么做百度推广手机客户端
  • 新开最好的传奇网站十大网站管理系统
  • 网站为什么不收录重庆人力资源和社会保障网官网
  • 做网站有高手没有网站收录情况
  • 视频网站做漫画百度号码认证平台个人号码申诉
  • 外贸网址长春百度seo排名
  • 阿里巴巴网站服务器成本如何把品牌推广出去
  • 紫色个人网站模板免费培训seo
  • 做短视频网站有流量吗广告推广代运营公司
  • 网站建设后续需要维护网站权重是怎么提升的
  • 重庆网站的建设媒体公关公司
  • 书籍网站建设目标太原seo网站优化
  • 溧阳网站制作重庆网络推广公司
  • 广州做网站公司哪家好互联网营销师报名入口官网
  • 上海爆发丧尸病毒宁波谷歌seo
  • 手机网站建设wap百度统计怎么使用
  • 福州企业网站建设推广广告宣传费用一般多少
  • b2b网站分析网络营销主要特点有哪些
  • 自己建网站有什么用网络培训平台
  • 如何做一个好网站代发百度帖子包收录排名