我正在尝试制作一个OpenGL游戏引擎,并将这样的场景初衷:(简化)
逐行读取scene.txt文件:
第一部分:着色器的名称。我加载它们
第二部分:必须创建的材料的名称。
因此,正如您所看到的,我通过字符串识别“元素”(如着色器和材质),这不是那么有效。 (但我认为在初始化期间这是可以接受的)
问题在于,如果我想在运行时更改对象的材质或材质的着色器,我必须通过相应的数组并比较其元素的名称(字符串)< / strong>直到找到相应的那个。
我认为这有点慢,所以我想知道,如何在运行时中创建唯一且易于比较的标识符?
有没有“动态枚举处理”之类的方式?
换句话说:我怎样才能找出一些我不知道编译时间的东西?
(使用 int 作为标识符并不是真正的“说话”名称)
这只是我想到的:
这可能是一个非常糟糕的主意,所以请随意评论:)
答案 0 :(得分:0)
最后,我选择了std::unordered_map
std::string
个键值。