c++ - 返回值为枚举的地址数组

标签 c++ arrays enums

这是我的问题: 我定义了一些值:

enum HarmCons
{
  val1 = 0,
  val2 = 2,
  val3 = 4,
  val4 = 6
};

我有一个数组

int foo [7] = { 16, 2, 77, 40, 1222, 34, 5};  

我从一个输入文件中读入的。我也有这个:

char types[15] = "val1,val3,val4";

现在我想用逗号分隔字符串并寻址(在循环中)foo 中的条目。所以字符串的第一部分是 val1,它应该返回 16。 我试过 foo[val1] 效果很好。问题是,通过分隔字符串,我总是会得到一个字符串或其他东西,而我无法通过字符串寻址数组。 是否有可能以我可以使用结果来寻址数组的方式分隔字符串?

最佳答案

看来你是想用锤子敲螺丝。数组是一种很好的数据结构,但并不能解决所有问题。

will always get a string or something and I cannot address an array by a string

的确,你不能。所以你需要数组以外的东西。看起来你有一个从字符串到整数值的映射。这种映射的数据结构是……映射(也称为关联数组、字典……)

标准库为您提供了一个实现:std::map<std::string, int> .根据您的用例,您可能想要用 map 替换枚举或数组。

关于c++ - 返回值为枚举的地址数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42554899/

相关文章:

java - 如何在 Spring mvc 中访问枚举值

c++ - 打印 std::array

Javascript 程序不断输出错误的数组索引

c# - 获取只有字符串的嵌套枚举类型?

go - 有没有办法迭代用作枚举的常量

javascript - 调整 ArrayBuffer 大小

c++ - std::unordered_map<Foo, Bar> 测试特定的 Foo 键是否存在

c++ - 突变和 C++ lambda

c++ - 从 C++ 对象调用 Objective-C 父对象

javascript - Js检查对是否存在于对数组中