C++11日期与时间🕒

C++11为了表示时间,新增加了chrono库。这是一个比原本C库更加好用的时间表达库。 想要使用chrono,请包含chrono头文件并且使用命名空间chrono

……

C++11随机数生成器

C++11提供了很多的随机数生成器,可以使用均匀分布,正态分布等方法进行随机。

要想生成随机数,请包含random头文件

C++11的随机数生成比C语言要麻烦,也好用地多。主要有以下概念:

  • 随机数生成器:用来生成随机数的类,相比于C语言,C++通过提供不同的随机数生成器来提供不同的随机数生成算法,让用户对随机数生成的底层算法有更好的选择。
  • 随机数分布:用于按照一定的分布来产生随机数。本质上是通过限定或修改随机数生成器产生的随机数来得到结果的,所以需要一个随机数生成器。

一般来说,得到一个随机数的方式如下:

  1. 首先得得到一个随机数生成器
  2. [可选] 然后可以采用随机数引擎适配器来对生成器进行一些操作
  3. 最后将生成的随机数传入随机数分布来得到随机数。

比较典型的过程如下:

1
2
3
4
5
default_random_engine engin;    //得到一个随机数生成器
engin.seed(time(nullptr)); //传入种子
uniform_int_distribution<int> dist(1, 10);  //得到一个随机分布
for(int i=0;i<100;i++)
    cout<<dist(engin)<<endl;    //随机分布利用随机数生成器生成随机数
……

C++17 filesystem

C++17新出了filesystem库用于对文件和目录进行操作。在以前使用C++的时候,一旦遇到要遍历目录的操作都得用Unix函数,而且还必须考虑和Windows的兼容性,可以说C++在这一方面做的很差。但是C++17中的filesystem解决了这个问题。

其CppReference在这里

……

Docker学习笔记

什么是Docker

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

其实说白了就是Docker是一个存储开发环境的容器,每个开发环境之间没有任何接口。我们可以通过docker来共享开发环境。

……