首页 >后端开发 >C++ >如何高效地将 C 字符串转换为枚举?

如何高效地将 C 字符串转换为枚举?

Linda Hamilton
Linda Hamilton原创
2024-11-12 07:33:01708浏览

How to Convert C   Strings to Enums Efficiently?

将 C 字符串转换为枚举

在 C 中,开发人员经常遇到将字符串转换为枚举的需要。一种简单的方法是使用冗长的 switch 语句。然而,还有更方便的方法。

一种解决方案是使用标准库映射进行映射,它在字符串和枚举之间建立对应关系。虽然这可能很有效,但需要细致的初始化。

随着 C 11 的出现,可以使用更简化的方法。使用无序映射,您可以在编译阶段构建一个将字符串映射到枚举的表:

static std::unordered_map<std::string,E> const table = { {"a",E::a}, {"b",E::b} };

现在检索给定字符串的相应枚举非常简单:

auto it = table.find(str);
if (it != table.end()) {
  return it->second;
} else {
  // Handle error
}

以上是如何高效地将 C 字符串转换为枚举?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn