• c++ enum 的枚举


    之前对C++的enum 一直不是特别清晰,通过一些其他的博客学习了一下,记录一下这种数据类型的特点~

    枚举数据类型的目的之一是符号名称有助于使程序自我解释。但是,由于这些名称不是字符串,它们仅在程序中使用。在编码的时候经常与switch 语句配合使用。

    enum Roster{Tom = 1,Sharon,Bill,Teresa,John};
    

    通过上面的语句,可以认为Tom 就是1, Sharon 就是2, 但是不能认为1就是Tom,2是Sharon。举数据类型的符号名称与整数值相关联。示例如下:

    #include <iostream>
    using namespace std;
    
    enum Roster{Tom=4,Sharon,Bill,Teresa,John};
    
    int main()
    {
    	int who;
    	cin>>who;
    	switch(who)
    	{
    	case Tom:
    		cout<<"Tom's birthday is Junuary 3
    ";
    		break;
    	case Sharon:
    		cout<<"Sharon's birthday is April 22
    ";
    		break;
    	case Bill:
    		cout<<"Bill's birthday is December 19
    ";
    		break;
    	case Teresa:
    		cout<<"Teresa's birthday is February 2
    ";
    		break;
    	case John:
    		cout<<"John's birthday is June 17
    ";
    		break;
    	default:
    		cout<<"Invalid selection
    ";
    	}
        cout<<Tom+Tom<<endl;
        system("pause");
    	return 0;
    }  
    

    c++不能直接使用int型,C++没有提供枚举类型的迭代器。发现虽然枚举类型的每个元素都是整数,但是++操作后不能赋值给原对象,所以你就把它当成两个类型之间的强制类型转换就好。而且你可以定义常量(如limit)作为枚举中遍历输出的范围限制

    for(Roster person=Tom ; person<limit; person=(Roster)(person+1)){ 
        cout<<persn<<" "; // person <= John 
    }
    
  • 相关阅读:
    How Many Answers Are Wrong
    Agri-Net —poj1258
    食物链
    A Bug's Life
    畅通工程
    Shortest path of the king
    Alex and Number
    KMP
    快速幂
    0x04
  • 原文地址:https://www.cnblogs.com/wsl-hitsz/p/13717978.html
Copyright © 2020-2023  润新知