12.15学习

今天感觉比较闲,在开始打游戏之前应该可以学蛮多东西。

争取把17章干完吧,或许顺便能把18章收了(在读C++primer = =)

以上是碎碎念


 

Part1.

关于tuple

就是一个类似pair的东西,但是可以存任意数目的元素。

其他的都不是很重要,我主要关注两个东西。

第一就是:

auto t = std::make_tuple(1,2,3);

一开始脑瘫了,一直想不通make_tuple是如何实现的。

后来发现要有函数参数包,就必定会有类型模板参数包,然后就很简单了。

 

第二是:

get<some_const_number>(t);

 返回值会保持原有的元素的特性。

若是左值则会返回一个左值引用。

若是右值则会返回一个右值引用。

我感觉tuple就这几点要注意的吧,其他还是很好理解的。


 

Part2.

关于bitset:

 啊

这个玩意儿感觉也没什么好讲的啊

主要一个比较新奇的点就是bitset可以用 string/cstring  来进行初始化

 

 

 我直接贴上来了

其中关于string::npos,它可以表示string结束的位置,好像还有一些很吊的用法,以后遇到再说。

 然后bitset也支持了一些类似对二进制进行操作的运算

像any all none 什么的,这里不想说了

反正忘了再看一遍就行了。

比较有意思的是

b.to_ulong();
b.to_ullong();
os<<b;
is>>b;

也是同样的记住就好了


 

 

Part3.

关于正则表达式

 感觉好困难啊这玩意儿...

但也能感觉到这个十分的重要。

先大致的浏览了一下大致能干什么

相信不久之后会再遇到的

 

Part4.

关于随机数

主要通过连个协作类

随机数引擎类,随机数分布类

引擎就是生成一组几乎不受控制的随机数,

分布类作用于引擎对其生成的随机数进行某种限制。

以上是概括本节的内容

 

其他的内容主要也是记忆为主,没什么好讲的。

我主要关注的一个点是,同一个引擎(类型+seed)每次生成的序列一样。

若有一个局部引擎每次调用将会产生同样的一组序列,这显然与我们想要的不同。

可以将其设为static  这样就能保持这个引擎推进到哪里的状态。

对于一个程序,为了让其产生不同的值,我们可以使用ctime里的time(),生成一个类随机的种子,这样我们就能保证引擎产生的序列不同了


Part 5.

也是一堆记忆的东西啊

先不写了,有用的时候再回头看可能会好一点。

posted @ 2021-12-19 10:55  CppinK  阅读(16)  评论(0编辑  收藏  举报