enum和bitset混合运用场景

来源:互联网 发布:手机淘宝如何代理商品 编辑:程序博客网 时间:2024/05/21 18:50

一般使用#defineconst创建符号常量,当符号常量多的时候使用enum

运用场景为:任务类有多个状态,需要用一个变量去存储该状态,为了更直观和规范化代码,多个状态用bitset来存储,用enum来作为显示。

#include<iostream>#include<bitset>using namespace std;namespace GameEnum{enum Weekend{ MonDay=1, TuesDay=2, WednesDat=3,};//enum声明的类型名只是用来方便划分符号变量的用途,当调用符号变量的时候,用命名空间调用};struct TaskInfo{    enum TASK_STATUS    {        TASK_STATUS_NONE = 0,        TASK_STATUS_VISIBLE = 1,    // 任务可见        TASK_STATUS_ACCEPTABLE = 2, // 任务可接        TASK_STATUS_ACCEPTED = 3,   // 任务已接        TASK_STATUS_FINISH = 4,     // 任务已完成        TASK_STATUS_SUBMIT = 5,     // 任务已提交        TASK_STATUS_END//缺省值等于6    };typedef bitset<TASK_STATUS_END> TASK_STATUS_FLAGS;TASK_STATUS_FLAGS _status;};int main(){cout<<GameEnum::MonDay<<endl;TaskInfo task_info;//任务状态初始化task_info._status.reset();//所有为重置为0//此处任务已接受,状态变更task_info._status.set(TaskInfo::TASK_STATUS_ACCEPTED);//将固定位置1if(task_info._status.test(TaskInfo::TASK_STATUS_ACCEPTED))//检查固定位置是否为1{cout<<"task is accepted"<<endl;}system("PAUSE");}