C++primer阅读笔记---------标准库特殊设施

该博客用于记录自己在阅读过程中不懂的知识点,很少用到但比较重要的知识点以及模棱两可的知识点


tuple的构造函数是explicit的所以必须使用直接初始化

tuple<sizt_t, sizt_t, sizt_t> t = {1, 2, 3} //错误
tuple<sizt_t, sizt_t, sizt_t> t{1, 2, 3}; //正确
类似make_pair,make_tuple返回一个tuple对象
auto item = make_tuple(1, 2, 3);

两个tuple具有相同数量的成员的时和才能使用关系运算,按字典序比较

auto num = get<0>(item); //获取第一个成员

typedef decltype(item) trans;
sizt_t sz = tuple_size<trans>::value; //获取tuple中元素的数量
tuple_element<1, trans>::type cnt = get<1>(item); //获取第i+1个元素的类型

bitset<n> b;
bitset<n> b(u);
bitset<n> b(s, pos, m, zero, one); //s只能包含zero和one字符,默认是‘0’和‘1’
bitset<n> b(cp, pos, m, zero, one);

b.any() //是否存在置位的二进制为
b.all() //是否所有位都置位了
b.none()
以上三个返回值都是bool型
b.count() //b中置位的位数
b.size()
b.test(pos)
b.set(pos, v) //v默认为true
b.set() //所有位置位
b.reset(pos)
b.reset()
b.flip(pos) //改变pos处的状态
b.flip()
b[pos]
b.to_ulong()
b.to_ullong()
b.to_string(zero, one) //转换成字符串,用zero字符代替bitwei中的0位,one...
os << b
is >> b

正则表达式暂时忽略,后面单独写

default_random_engine是标准库中具有最常用特性的引擎类
分布引擎以一个随机数引擎作为参数
可以调用seed函数或者在创建时为引擎提供一个种子,相同的种子生成相同的序列,调用time的返回值来作为种子是比较常用的方法


通常打印true和false输出会是1和0,在输出bool值的前面加上boolalpha将会输出true和false

使用hex,oct,dec可以将输出的整数分别改为十六进制,八进制,十进制

showbase会控制流显示进制
cout << showbase; //使cout流显示进制
cout << hex << 20 << endl; //会打印出0x14
cout << noshowbase; //取消流的显示控制
uppercase可以将十六进制的x变为大写

可以调用IO对象的成员函数precision(n)控制精度值为n(当不加参数的时候会返回当前的精度),或者调用操作符setprecision(n)可以达到相同的目的

scientific改变流的状态使用科学计数法
fixed使用定点十进制
hexfloat强制浮点数使用十六进制格式
defaultfloat修改为默认状态

showpoint和noshowpoint控制是否省略小数点(10.0打印出来是10,省略了)

setw(n)设置下一个要输出的值占屏幕的最小空间为n
left,right左对齐右对齐
internal设置负数符号位置
setfill设置填充的符号,默认为空格

输入运算默认忽略空白符(空格符,制表符,换行符,换纸符和回车符)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值