今天感觉比较闲,在开始打游戏之前应该可以学蛮多东西。
争取把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.
啊
也是一堆记忆的东西啊
先不写了,有用的时候再回头看可能会好一点。