tuple,当我们希望将一些数据组合成单一对象,但又不想麻烦的定义一个新数据结构来表示这些数据时,使用tuple,简易struct?
tuple<int,int,int> three{1,2,3};//是explicit,所以不能使用 = {1,2,3};
auto item = make_tuple(1,"abc",5.0);
//成员是未命名的,所以需要使用get标准库函数模板
auto a = get<0>(item);
auto str = get<1>(item);
//这样似乎不好,未命名并且获取方式导致程序难读.
使用tuple返回多个值,清晰比简单重要,所以应该使用具体的struct或class,不要怕麻烦.
bitset
固定大小
bitset<32> bitvar(1u);//32位
bitset<32> bitst("1100");
正则表达式
是一种极其强大的工具,但是效率~
正则表达式的语法是否正确时在运行时解析的.
随机数
头文件:<random>
随机数引擎类:生成原始随机数,有几种不同的方法产生
随机数分布类:对随机数作分布,例如范围,分布等
均匀分布,伯努利分布,泊松分布,正态分布,抽样分布
uniform_int_distribution<unsigned> u(0,9);//分布器
default_random_engine e(1);//默认生成引擎,指定种子
e(u);//生成对应分布的随机数
IO库操纵符
endl
boolalpha,控制布尔值格式
oct,hex,dec,指定整型值的进制
shoubase 等.
输出补白,setw,left,right,internal,setfill
未格式化操作
is.get
流随机访问
seek,tell