c++tuple和bitset

tuple

tuple是类似pair的模板,一个tuple可以有任意数量的成员,类型也可以不相同

make_tuple:返回一个用给定初始值初始化的tuple,返回的tuple类型从初始值推断

可以使用()、{}初始化但不能使用={}

tuple<size_t, size_t, size_t> three;//

tuple<int, string, vector<int>> someVal(1, "aaa", { 1,2,3,4,5 });

auto item = make_tuple("aaa", 11, 3.1415);

 

访问tuple 

使用get得到tuple成员

tuple_size<tupleType>::value得到tuple的成员数量

tuple_element<i,tupleType>::type得到指定成员的类型

auto name = get<0>(item);//返回tuple第一个成员

auto id = get<1>(item);//返回第二个成员

get<2>(item) *= 2;//第三个成员

typedef decltype(item) trans;//trans是item的类型

auto sz = tuple_size<trans>::value;

tuple_element<1, trans>::type cnt = get<0>(someVal);

 

 

bitset

进行位运算,并且能够处理超过最长整形类型大小的为集合

bitset<32> bitvec(1U);//32位,低位为1,其他位为0

bitset<13> bitvec1(0xbeef);//二进制位序列为1111011101111

bitset<20> bitvec2(0xbeef);//二进制位序列为00001011111011101111

 

bitset操作

b.any() b中是否存在置位的二进制位

b.all() b中所有位都置位了吗

b.none() b中不存在置位的二进制位吗

b.count() b中置位的位数

b.size() 返回b中的位数

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值