using switch case block not just under the integral type

#include < iostream >    
#include
< string >    
#include
< map >

using   namespace  std;


int  main() 
{   
   map
<string,int> strint;
   strint.insert(make_pair(
"Banana",1));
   strint[
"Apple"]=2;   
   strint.insert(map
<string,int>::value_type("Grape",3));
   typedef map
<string,int>::value_type valtype;
   strint.insert(valtype(
"Pear",4));
   strint.insert(valtype(
"Watermelon",5)); 
   
   
for(map<string,int>::iterator iter=strint.begin();iter!=strint.end();++iter)
   
{
      cout
<<(*iter).first<<"  "<<(*iter).second<<endl;
   }

   
string ask;
   
while(cin>>ask)
   
{
     
switch(strint[ask])
     
{
      
case 1:
          cout
<<"The input is "<<ask<<endl;
          
break;
      
case 2:
          cout
<<"The input is "<<ask<<endl;
          
break;
      
case 3:
          cout
<<"The input is "<<ask<<endl;
          
break;
      
case 4:
          cout
<<"The input is "<<ask<<endl;
          
break;
      
case 5:
          cout
<<"The input is "<<ask<<endl;
          
break;
      
case 0:
      
default:
          cout
<<"The input is the other: "<<ask<<endl;
     }

   }

   
   
return 0
}
 

 

以前知道用switch case语句对于多个的分支处理很好。但是只能是整形的数据。想下有很多情况下用不了的。我也有就这个问题在论坛上问过,但都没有人给出一个程序,只是说了一大堆,不过也没有说到我今天用的方法。其实真是一个好的方法,不过可能会随着输入的增多而占用大量空间。如里是这个的话还可以用m.cout()先处理一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值