社区
C++ 语言
帖子详情
如何获取 enum 类型的元素个数
hai_feng
2005-05-31 05:33:28
如:
enum E { 1, 2, 3 .... };
如何获取 E 的元素个数?不能用人手工去数数。
...全文
3586
32
打赏
收藏
如何获取 enum 类型的元素个数
如: enum E { 1, 2, 3 .... }; 如何获取 E 的元素个数?不能用人手工去数数。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
32 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jinhao
2005-06-11
打赏
举报
回复
template<typename _T>
struct enum_size{ const static int value = 0;};
template<typename _T>
class __count{ char x[enum_size<_T>::value];};
template<typename _Enum_Type>
__count<_Enum_Type> enum_size_f(_Enum_Type);
enum xxx{a,b,c}; //定义这个之后就别忘了定义下面这个
template<>struct enum_size<xxx>{ const static int value = 3;}; //3表示3个元素
int main()
{
cout<<enum_size<xxx>::value<<endl; //从类型
xxx x; //从对象
cout<< sizeof(enum_size_f(x)) <<endl;
}
虽然这样定义有点麻烦,但是这样用的用起来也很爽.
nasi00
2005-06-11
打赏
举报
回复
通常都是加一个数来表示结尾的,比如
enum{ A, B, C, ... , END = 999999 }
CloudOfFly
2005-06-10
打赏
举报
回复
用begin end 释代就可以了
hai_feng
2005-06-10
打赏
举报
回复
TrueZq(xx) 的方法有新意,听说 不读取源文件都可以把源程序打印出来的,这2个方法加起来似乎就成功了,不过具体怎么做呢?
hsz8250
2005-06-10
打赏
举报
回复
你觉得有必要吗?enum其实你自己都知道个数
TrueZq
2005-06-10
打赏
举报
回复
char * str = "enum E { 1, 2, 3 .... };"
然后分析逗号的个数
如果非要动态读取,就读取文件自身
suiyun
2005-06-10
打赏
举报
回复
自己不做一个哨兵当然没法知道
byktwc
2005-06-10
打赏
举报
回复
enum e{e,a,b,d,r,y,s};
直接将s+1赋值给int num不就行了!
MagicCarmack
2005-06-10
打赏
举报
回复
UPCC(杂食动物) 的解释不错-_-
BS也是这么解释的
hai_feng
2005-06-10
打赏
举报
回复
up
Sword_liao
2005-06-07
打赏
举报
回复
不大可能吧,就像给你一个类,你事先不知道这个类,却要你告知这个类有多少个数据成员
除非你知道enum的内存结构,难道是这样?num = sizeof(enum e)/sizeof(int);没试过
brianlu
2005-06-06
打赏
举报
回复
mark
xsp919
2005-06-06
打赏
举报
回复
up
CPPLOVER_78
2005-06-06
打赏
举报
回复
回答的不错
lingehu25
2005-06-05
打赏
举报
回复
没办法,顶一下先。
hai_feng
2005-06-05
打赏
举报
回复
up
mingfelicity3
2005-06-05
打赏
举报
回复
up
mostideal
2005-06-02
打赏
举报
回复
呵呵,,顶了。。。
key20003
2005-06-02
打赏
举报
回复
想了半天没有答案,顶!~~
zdy_8212
2005-06-02
打赏
举报
回复
;enum系列:0 1 2 4 8 16,
1。看最后一个数的权位,
2。将最前一个数的值与最后一个数值比较两两排除。LIMIT接近。
3。析出,将每一个数模运算权数。《好像错了。呵。。有感觉的时候可能就说对了。
加载更多回复(12)
获取
Enum
中项
个数
的优雅方法
在Microsoft.Practices.ObjectBuilder2中的StagedStrategyChain<...类中只用的下面的方法来
获取
枚举里
元素
的
个数
: 1: private static int NumberOf
Enum
Values() 2: { 3: return typeof(TStage
Enum
).GetFields(Bi...
C#基础知识回顾--C#遍历
enum
类型
、
获取
enum
项
个数
C#遍历
enum
类型
对于
enum
类型
: ...使用foreach遍历
enum
类型
的
元素
并填充combox foreach ( HatchStyle hs1 in
Enum
.GetValues(typeof(HatchStyle))) { comboBox1.Items.Add(hs1.ToString()...
【mysql】
ENUM
类型
其所需要的存储空间由定义
ENUM
类型
时指定的成员
个数
决定。 文本字符串
类型
长度 长度范围 占用的存储空间
ENUM
L 1 <= L <= 65535 1或2个字节 当
ENUM
类型
包含1~255个成员时,需要1个字节的存储...
C++ 枚举
enum
用于表述固定
个数
的种类或可能情况。 语法定义格式
enum
枚举
类型
名 {element_1, element_2,... element_n}; 如
enum
weekday {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; 对枚举
元素
按整形常量处理,不能进行赋值...
得到
enum
类型
的
个数
在网上找了很多资料好像都没有好办法,最普遍的是计算第一个
元素
和最后一个
元素
的差,如
enum
fruit{ apple, orange}size = orange - apple + 1;本人也没有更好的办法,只是对
enum
的定义略作修改
enum
fruit{ apple, ...
C++ 语言
65,206
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章