![算法训练营:提高篇(全彩版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/130/52921130/b_52921130.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.2 基本操作
(1)any()、none()。若位图对象至少有一位是1,则对其进行any()操作返回true,否则返回false。若位图对象没有一位是1,则对其进行none()操作返回true,否则返回false。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_22.jpg?sign=1739447846-9JUgpcqLwrkNftNRUd4FO73gRWaiyitv-0-5822d4467183c1e058b5b6048e5a7f29)
(2)count()、size()。count()用于统计位图对象上二进制位是1的数量,返回值的类型是size_t。size()用于返回位图对象的二进制位数,返回值的类型是size_t。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_23.jpg?sign=1739447846-x7mD0RRwNkv836N1u8rvYuOleFurl9QD-0-adcae1fc28b20df623270188a736fa68)
(3)set()、test()。可以用下标操作符读或写某个索引位置的二进制位的值。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_24.jpg?sign=1739447846-zrn6nivQB7UEg4ttSTbOGEX0j904wMbY-0-6732222907d8e609bc87242cf0da1627)
除了用下标操作符,还可以用set()设置给定二进制位的值。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_25.jpg?sign=1739447846-BTLRKTahTvCZCyRqBAUx0GyTYOSIzxF4-0-b82934274d4d6badff8b443b6daea9bb)
为了测试某个二进制位是否为1,可以用test()或者下标操作符进行测试。若测试的二进制位为1,则返回true,否则返回false。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_26.jpg?sign=1739447846-AsFlfJXYp4ciQGZnyeTq8IMDIuLxZPZd-0-f7e922013356164d2af8846e4ef257e4)
(4)set()、reset()。set()用于将整个位图对象的所有二进制位都设置为1,reset()用于将整个位图对象的所有二进制位都设置为0。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_27.jpg?sign=1739447846-XhQ5htua3i5ZK3KzOrLH0pNMpqj0vYo7-0-83e24eea898513b19cfbcc33eff406f3)
(5)flip()。flip()用于将位图对象的所有位或特定位都按位取反。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_28.jpg?sign=1739447846-Ax3xiVEs1rFZujQ7S9qKlqxjwstfecll-0-afe5786b2e9c6e1d79655695fdc22be2)
(6)to_ulong()。to_ulong()用于返回一个unsigned long值,该值与位图对象的二进制位模式存储的值相同。仅当位图的二进制位数小于或等于unsigned long值的二进制位数时,才能进行to_ulong()操作。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_29.jpg?sign=1739447846-wwVzyD26dLPifMBxp27NXySkaa40dVgu-0-6e2d5c1a89a4380a57fbef6d95ece1a5)
to_ulong()主要用于把位图对象转到C风格或标准C++之前风格的程序上。若位图对象的二进制位数超过unsigned long值的二进制位数,则将产生运行时异常。
(7)to_string()。to_string()主要用于将位图对象转换为字符串。
(8)将十进制数转换为二进制数。通过位图可以将十进制数转换为二进制数。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_30.jpg?sign=1739447846-xKwU4Nqcy1vYOYeWCSGKIbs26UHzamLp-0-49d530641d8eb1800744843b2c2b81e2)