Why the switch statement cannot be applied on strings?

前端 未结 20 2828
离开以前
离开以前 2020-11-22 03:58

Compiling the following code and got the error of type illegal.

int main()
{
    // Compilation error - switch expression of type illegal
    sw         


        
20条回答
  •  独厮守ぢ
    2020-11-22 04:44

    C++

    constexpr hash function:

    constexpr unsigned int hash(const char *s, int off = 0) {                        
        return !s[off] ? 5381 : (hash(s, off+1)*33) ^ s[off];                           
    }                                                                                
    
    switch( hash(str) ){
    case hash("one") : // do something
    case hash("two") : // do something
    }
    

提交回复
热议问题