![算法训练营:提高篇(全彩版)](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=1739428564-fpPqo6YEP5gz1tnkDrXY9zKK3gnQyR5K-0-23e1872ac36aa2c1f76f62c59292964a)
(2)count()、size()。count()用于统计位图对象上二进制位是1的数量,返回值的类型是size_t。size()用于返回位图对象的二进制位数,返回值的类型是size_t。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_23.jpg?sign=1739428564-PVRLCikGQLTYPWoQlny7sznn3QLjeTTy-0-373f26b435ac4c2b66e119b536340ca9)
(3)set()、test()。可以用下标操作符读或写某个索引位置的二进制位的值。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_24.jpg?sign=1739428564-4Piysw9Hkl9tRTzzVoEUYoYEu0S2VRL1-0-7e899ee160d8de4f9d1ef2bde3d90b6d)
除了用下标操作符,还可以用set()设置给定二进制位的值。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_25.jpg?sign=1739428564-NOfkyG97QNyK0QMGncRSWI2VtNeKqj7W-0-11f310c2082d07446f8c8428c838d650)
为了测试某个二进制位是否为1,可以用test()或者下标操作符进行测试。若测试的二进制位为1,则返回true,否则返回false。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_26.jpg?sign=1739428564-j7azqmxCfx0zVOt5hwrSerSCaRUhGQhc-0-d2379648c1822bdb826bdae4a0e91395)
(4)set()、reset()。set()用于将整个位图对象的所有二进制位都设置为1,reset()用于将整个位图对象的所有二进制位都设置为0。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_27.jpg?sign=1739428564-KrGU9uRSb022O2uHirjlf0BWbG904JRf-0-49a46e911aae796089e800a6d7d5e676)
(5)flip()。flip()用于将位图对象的所有位或特定位都按位取反。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_28.jpg?sign=1739428564-kP7U9eSCmF9tc0dh2QNvaxK0HJK40pwk-0-ce049ae7b0346010b50687ba603c78ea)
(6)to_ulong()。to_ulong()用于返回一个unsigned long值,该值与位图对象的二进制位模式存储的值相同。仅当位图的二进制位数小于或等于unsigned long值的二进制位数时,才能进行to_ulong()操作。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_29.jpg?sign=1739428564-qYeytZruEiv59HAv6lUzZtzAIGZfPX81-0-f514a38d9de691fbc778d912e062f537)
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=1739428564-2CeQn5uFQ3kowrsr3Lifte6T3fezLE70-0-67b7e25ce285dbcef6004dedd92e3020)