C++标准库学习笔记
自强不息,厚德载物
有话直说,说到做到
很多时候你所看到的并一定是真实的
c++标准库:
17:数值
产生随机数:分引擎和分布两部分。引擎默认有初始状态,它产生随机值,提供不同的种子,就会产生不同的随机序列。相同的种子或默认状态,产生的随机值序列是相同的。有效种子可以为两次鼠标点击之间的毫秒数或cpu时钟数。std::default_random_engine所产生的随机直依赖于实现,不同平台可能使用算法不同,相同的种子可能产生不同的直(在不同的平台上)。分布可以取常规的均匀分布:std::uniform_int_distribution或std::uniform_real_distribution。随机值取值范围,通过分布来指定。需要小心:不应该传入临时引擎,因为每次初始值一个引擎,其初始状态相同。
若不引入分布,还可以对容器数据通过洗牌方式std::shuffle打乱容器或区间内的元素。引擎所产生的数据为:无正负号整数值。
提供的引擎有:16个,4类,缺省引擎、基础引擎、引擎适配器、适配器并带预定以参数;
提供的分布有:20个,4类,分别是均匀分布、泊松分布、正态分布、抽样分布;
选择那个引擎和分布,由具体实现决定。
引擎可通过stringstream流(内存流)的读写来实现序列化保存。
18:并发
多线程并发访问,标准库已支持并发编程。
介绍各种各样的线程启动方式,介绍高级和底层接口。最主要的问题就是数据的并发(为介词)访问。
同步化线程的特征
并发数据访问的特征
std::future
auto result1(std::async(fun1));
int result2 = fun2();
int result = result1.get() + result2;
此时,fun1在后台运行,fun2在前台运行,现在fun1和fun2都是并行运行。
launch策略:强迫async()绝不延迟目标函数的执行
std::future
这样就不必🉐调用get()了。
也可以强制延迟执行(deferred)直到调用get()
wait_for&wait_until能让我们写出“投机性运行”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?