第十七章 标准库特殊设施
1.tuple可以看作一个快速而随意的数据结构。tuple的构造函数是explicit的,必须直接初始化。还可以make_tuple。
2.访问tuple的成员,get(),如果不知道tuple准确的类型细节,可以用tuple_size和tuple_element来辅助。
3.两个tuple只有具有相同数量成员才可以比较。
4.bitset使得位运算使用更加容易,可以处理超过最长整形类型大小的位集合。
5.regex_search只要找到一个匹配子串就会停止查找。
6.正则表达式是在运行而不是编译时编译的,是一个很慢的过程,避免创建不必要的正则表达式。
7.$表示从字符串结尾开始匹配。
8.regex迭代器,绑定到第一个匹配位置。prefix和suffix分别表示匹配的前缀和后缀。
9.子表达式。子匹配是按位置来访问,第一个子匹配位置0,表示整个模式对应的匹配。随后是每个子表达式的匹配。常用于数据验证。
10.C++不该使用rand库函数,而是使用default_random_engine和恰当的分布类对象。
11.uniform_int_distribution<unsigned> u(0,9)生成均匀分布,在0到9之间随机数。随机数发生器一般是说:分布对象和引擎对象组合。
12.随机数发生器有一个特性:给定的发生器,每次运行程序它都会返回相同的数值序列。解决方法是将引擎和关联的分布对象定义为static,这样可以保持状态。
13.随机数发生器种子。种子是一个数值,引擎可以用它从序列的一个新位置重新开始生成随机数。
14.IO操作符对格式状态的改变是持久的。
15.showbase操作符显示进制。
16.默认情况下,浮点数按6位数字精度打印。可以通过IO对象的precision成员或者setprecision操作符改变。
17.默认下,输入运算符忽略空白符,可以用noskipws操作符使得其不跳过。
18.流随机访问。tell和seek函数。