c++ - 查找函数未返回正确的值

标签 c++ dictionary enums

<分区>

是不是不能像这样填充 map :

void Spel::Fill( void )
{
    int buildslist[] = {3,3,2,2,2,2,3,2,2,2,2,3,3,2,2,2,2,1,1,1,1,1};
    Building::buildings p;

    for( int i = Building::INDIGOK; i < Building::STADSHUIS; i++)
    {
        p = (Building::buildings) i;
        gebouwenMap[p] = buildslist[i];

    }
}

这给出所有 0Building::buildings 是一个带有一些建筑物名称的枚举。 buildslist 是可以加入该建筑物的人数列表。

最佳答案

首先,没有足够的代码来给出实际答案。请改进您的问题,以便我们更好地帮助您。

其次,标题具有误导性“Find function doesn't return the right value”。没有“查找”函数,也没有“返回值”,因为您显示的唯一函数返回 void .

现在这已经解决了,让我试着帮助你:

    p = (Building::buildings) i;

这是一个从 int 到 enum 的转换。我认为这是糟糕的 C++(可能未定义,因为在某些编译器中可能有效,但不是经验法则)。我想你必须在这里使用一个开关。

请用英文编写代码。您是否想过如果与您一起工作的人是日本人并且会使用日语变量名编写代码?即使项目是荷兰语的,也要用英语编写代码,包括注释。

编辑:您可能想在这里使用字符串而不是枚举。

尝试使用 std::map<std::string, int>编码您的建筑物名称而不是枚举,然后使用 std::map::iterator遍历它。

关于c++ - 查找函数未返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297061/

相关文章:

c++ - GCC/VS2008 : Different behaviour of function call when templated base class is derived from itself

c++ - 下载一个二进制文件,关闭当前的并启动新的

c++ - 我似乎对 C++ 中的 `static` 有一些误解

java - 在 Java 中定义嵌套类/对象/枚举结构的最佳方法是什么?

c - 用数组常量定义的枚举

c++ - 如何删除动态数组的特定索引?

ios - iOS 中的世界地图

arrays - 枚举由字典元素组成的数组时,无法修改字典值

python - 如何将此词典列表转换为表格或 csv 文件?

typescript - 如何在运行时获取 TypeScript 枚举类型的名称?