【发布时间】:2013-03-21 14:30:59
【问题描述】:
我正在尝试让哈希表或字典在 Arduino Mega 2560 上工作。我的目标是拥有类似的东西
dictionary[ENGLISH]["ACCOUNT"] = "Account";
dictionary[ENGLISH]["DATE_AND_TIME"] = "Date and Time";
dictionary[ENGLISH]["IDLE"] = "Idle";
dictionary[ENGLISH]["Language"] = "Languge"
dictionary[ENGLISH]["MAIN_MENU"] = "Main Menu";
dictionary[ENGLISH]["PRESCRIPTION"] = "Prescription";
dictionary[ENGLISH]["SETTINGS"] = "Settings";
dictionary[ENGLISH]["SOUND"] = "Sound";
其中 ENGLISH 本质上是一个常数 0,我也会有 SPANISH 和 FRENCH(分别为 1 和 2)。也就是说,一个由 3 个字典元素组成的数组。
在第一次 Google 搜索中,我找到了一个模拟 C++ STL 的库的 link,但它根本不适用于我的 Arduino 1.0.3。我想知道是否有人可以为我在 arduino 中使用地图/哈希表的替代方法,或修复以使提到的库正常工作。
对于我的情况,我正在通过 Arduino 上的触摸屏对菜单系统进行建模,它必须接受 3 种语言(用于按钮)。所选语言位于 EEPROM 中的某个位置,我会将其保存在变量 'lang' 中,当我需要在屏幕上打印某些内容时,我会执行以下操作:
screen.print(dictionary[lang]["SOUND"], CENTER, 23);
根据用户选择的“语言”,理想情况下,它会相应地打印。
【问题讨论】:
-
std::map<int, std::map<std::string, std::string> >怎么样? -
据我所知,目前还没有 Arduino 的标准库,我上面提到的那个对我不起作用(我理解你的建议:而不是制作一系列字典,制作一个字典,其中“lang”是字典中的第一个元素,但我现在没有办法使用地图。)(我澄清了我的问题!)
-
每种语言有多少个条目?
-
@user529758 Arduino 没有标准库实现。
std命名空间中不存在任何内容。