递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2390|回复: 7
打印 上一主题 下一主题

[类库封装] std::bitset 比特位集

[复制链接]

86

主题

947

帖子

4884

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4884
跳转到指定楼层
楼主
发表于 2024-3-19 16:51:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
它是C++标准库中的一种容器,专门用来表示一组固定的二进制位序列,其中每个位都可以独立设置为0或1。

<火山程序 类型 = "通常" 版本 = 1 />

类 字节比特 <公开 基础类 = 比特基类 注释 = "相当于[8]个成员的逻辑数组,但是内存占用[1]字节~" @模板实现类 = "字节">

类 短整数比特 <公开 基础类 = 比特基类 注释 = "相当于[16]个成员的逻辑数组,但是内存占用[2]字节~" @模板实现类 = "短整数">

类 整数比特 <公开 基础类 = 比特基类 注释 = "相当于[32]个成员的逻辑数组,但是内存占用[4]字节~" @模板实现类 = "整数">

类 变整数比特 <公开 基础类 = 比特基类 注释 = "相当于[32|64]个成员的逻辑数组,但是内存占用[4|8]字节~" @模板实现类 = "变整数">

类 长整数比特 <公开 基础类 = 比特基类 注释 = "相当于[64]个成员的逻辑数组,但是内存占用[8]字节~" @模板实现类 = "长整数">

类 比特基类 <折叠 @模板基础类 = 真 @别名类型 = 本地类 @别名 = "std::bitset <sizeof(模板类型1)*8>" @视窗.外部头文件 = "<bitset>">
{
    方法 取成员数 <公开 静态 类型 = 整数 注释 = "整数=32" 注释 = "长整数=64" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.size()
    }

    方法 赋值 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 值 <类型 = 模板类型1>
    {
        @ @<当前对象> = @<值>
    }

    方法 置值 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    参数 值 <类型 = 逻辑型 注释 = "真=1  假=0">
    {
        @ @<当前对象>[@<索引>]=@<值>
    }

    方法 置真 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    {
        @ @<当前对象>.set(@<索引>)
    }

    方法 置假 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    {
        @ @<当前对象>.reset(@<索引>)
    }

    方法 取值 <公开 静态 类型 = 逻辑型 注释 = "真=1  假=0" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 索引 <类型 = 整数>
    {
        @ @<当前对象>.test(@<索引>)
    }

    方法 是否包含真 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中是否存在值为 1 的位" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.any()
    }

    方法 是否全部为假 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中是否所有位都是 0" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.none()
    }

    方法 是否全部为真 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中是否所有位都是 1" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.all()
    }

    方法 取真数量 <公开 静态 类型 = 逻辑型 注释 = "std::bitset 中值为 1 的位的数量" 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.count()
    }

    方法 到短整数 <公开 静态 类型 = 短整数 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ *(@dt<短整数>*)&@<当前对象>
    }

    方法 到整数 <公开 静态 类型 = 整数 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ (INT)@<当前对象>.to_ulong()
    }

    方法 到长整数 <公开 静态 类型 = 长整数 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ @<当前对象>.to_ullong()
    }

    方法 到字节 <公开 静态 类型 = 字节 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    {
        @ *(byte*)&@<当前对象>
    }

    方法 到数值 <公开 静态 折叠 @嵌入式方法 = "">
    参数 当前对象 <类型 = 比特基类>
    参数 所欲读取值的类型 <注释 = "整数,字节,长整数...等~." 注释 = "输入 模板类型1 的数据类型即可~" @需求类型 = 数据类型 @匹配类型 = 通用非文本基本型 @返回值类型 = 0>
    {
        @ *(@<所欲读取值的类型>*)&@<当前对象>


    }
}


回复

使用道具 举报

2

主题

250

帖子

2033

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2033
沙发
发表于 2024-3-20 00:32:16 | 只看该作者
不错~
回复

使用道具 举报

1

主题

35

帖子

331

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
331
板凳
发表于 2024-3-20 11:40:54 | 只看该作者
模块呢?
回复

使用道具 举报

86

主题

947

帖子

4884

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4884
地板
 楼主| 发表于 2024-3-20 11:46:39 | 只看该作者

文本不就是吗
回复

使用道具 举报

21

主题

263

帖子

3119

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3119
5#
发表于 2024-3-20 11:54:42 | 只看该作者
在研究啥新东东
回复

使用道具 举报

111

主题

612

帖子

2174

积分

金牌会员

Rank: 6Rank: 6

积分
2174
QQ
6#
发表于 2024-3-20 16:42:08 | 只看该作者

小牛牛,把 std::string  也封了呢
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

86

主题

947

帖子

4884

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4884
7#
 楼主| 发表于 2024-3-29 15:06:22 | 只看该作者
server 发表于 2024-3-20 16:42
小牛牛,把 std::string  也封了呢

我不会啊..你可以看看PIV模块,里面应该有的
回复

使用道具 举报

0

主题

11

帖子

78

积分

注册会员

Rank: 2

积分
78
8#
发表于 2024-5-1 00:04:59 | 只看该作者
怎么用?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 15:29 , Processed in 0.088969 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表