![算法训练营:提高篇(全彩版)](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=1738868010-9pO9J9gs2WvVj6CAwkRMacayQnJDObV0-0-9d42f0a199ebc3396933333d777d0fcd)
(2)count()、size()。count()用于统计位图对象上二进制位是1的数量,返回值的类型是size_t。size()用于返回位图对象的二进制位数,返回值的类型是size_t。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_23.jpg?sign=1738868010-GzodtXeaBu6IiqO4rcaSjRHOwdbdSbMR-0-abebaa74c72957f80cb5a4546ecccc78)
(3)set()、test()。可以用下标操作符读或写某个索引位置的二进制位的值。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_24.jpg?sign=1738868010-XL8J6YJLAsjoxU838JLvgwG853tQ8ZM8-0-c5ade8bbf24da6c06331d16c2426e3b2)
除了用下标操作符,还可以用set()设置给定二进制位的值。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_25.jpg?sign=1738868010-WFVE8eY82yCqumtSebBuxXcRFXHa2uze-0-be45c84ae9fa6b8a32e829ea99021c12)
为了测试某个二进制位是否为1,可以用test()或者下标操作符进行测试。若测试的二进制位为1,则返回true,否则返回false。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_26.jpg?sign=1738868010-u8ISm92a8sXOMon5lXAZkkWwZEFXRuU0-0-3b24e02690b1070b62245f44d07c44d1)
(4)set()、reset()。set()用于将整个位图对象的所有二进制位都设置为1,reset()用于将整个位图对象的所有二进制位都设置为0。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_27.jpg?sign=1738868010-Ju2jP0r3yjz5yKV5MNquxIRYqz4aIeok-0-1929f7c6ecba1a3d0f89d47423c4b0b3)
(5)flip()。flip()用于将位图对象的所有位或特定位都按位取反。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_28.jpg?sign=1738868010-Izsqwzd03SPKKICSO8HQCsh32mPDJZwQ-0-1eaf4a7a5a40961ebf63b2efa225fdcf)
(6)to_ulong()。to_ulong()用于返回一个unsigned long值,该值与位图对象的二进制位模式存储的值相同。仅当位图的二进制位数小于或等于unsigned long值的二进制位数时,才能进行to_ulong()操作。
![](https://epubservercos.yuewen.com/AE123A/31457654304331706/epubprivate/OEBPS/Images/txt001_29.jpg?sign=1738868010-2cNb4C4Ub2j95WbMs7UvLDEaLwZjeU1P-0-cf1b9b4fed8c2d280f2ef384868502b9)
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=1738868010-XZf3LIYmlF1pbgt86RW9Lfjr6WcH0cs4-0-5a395b563ed25bcba41c49bdeb16862f)