我需要使用 Qt 为 C++ 中的字符串创建等效的 switch/case 语句。我相信最简单的方法是这样的(伪代码)
enum colours { red, green, blue };
QString array[] colour_names = { "red", "green", "blue" };
switch (color_names[user_string]) {
case red: answer="Chose red";
case green: answer="Chose green";
case blue: answer="Chose blue";
other: answer="Invalid choice";
}
但这并没有利用 Qt 的某些特性。我已经阅读了 QStringList(在字符串列表中查找字符串的位置)和 std:map(请参阅如何轻松地将 c++ 枚举映射到我不完全理解的字符串)。
有没有更好的方法来切换字符串?