这是我的问题: 我定义了一些值:
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/