c++ - (C++/QT) 通过将字符串转换为 int 来使用带有字符串的 switch 语句

标签 c++ qt switch-statement

此时website我发现了一种有趣的方法来创建带有字符串的 switch 语句。然而,这看起来确实很漫长。我想知道是否可以将特定字符串转换为可在 switch 语句中使用的整数。

所以伪代码会是这样的

QString str = "spinbox_1";

switch stoi( str )
case 1543:
    //code here
case 2343:
    //code here
case 3424:
    //code here

最佳答案

正如 @Slava 提到的,这并不容易实现。作者在上述链接中提供的解决方案可能是最实用的解决方案。但是,如果由于某种原因您确实需要以其他方式进行操作并将字符串转换为十进制数,则可以使用散列方法。请引用下面广泛使用的cityhash(显然你可以使用任何其他哈希函数)。 https://github.com/google/cityhash

这可能与以下内容重复: How can I hash a string to an int using c++?

关于c++ - (C++/QT) 通过将字符串转换为 int 来使用带有字符串的 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38335970/

相关文章:

java - if else vs switch java中的性能

javascript - Jquery 选择选项不适用于 switch 和 case

c++ - ld : symbol(s) not found with OpenSSL (libssl)

java - 为什么要使用 HashMap ?

c++ - 二维边界框碰撞

qt - QDir::mkPath 和权限

c++ - 找不到 libopecv_core.so.2.3,文件实际上不存在

c++ - SDL2/Qt C++ 未读取操纵杆输入但已识别

c++ - 这个可变参数模板示例有什么问题?

c++ - 在 C 或 C++ 中是否使用未初始化的指针?