gpt4 book ai didi

c++ - 如何在一个switch中实现多个case的一些独占语句和一些公用语句?

转载 作者:太空狗 更新时间:2023-10-29 23:23:55 25 4
gpt4 key购买 nike

我有一个 switch 语句,其中每个案例都有唯一的代码,并且一些代码在除默认标签之外的所有案例之间共享。有没有一种在不同 case 标签之间共享命令的好方法?

编辑:代码示例

switch (c)
{
case '+':
command.type = ADD;
commands.push_back(command);
break;
case '-':
command.type = SUB;
commands.push_back(command);
break;
case '>':
command.type = INC;
commands.push_back(command);
break;
case '<':
command.type = DEC;
commands.push_back(command);
break;
case '.':
command.type = PUT;
commands.push_back(command);
break;
case ',':
command.type = GET;
commands.push_back(command);
break;
default: break;

最佳答案

保留 std::mapcharcommand.type 的任何类型。
我们称它为 command_table

然后:

switch (c)
{
case '+':
case '-':
case '>':
case '<':
case '.':
case ',':
command.type = command_table[c];
commands.push_back(command);
break;
default: break;
}

或者,更短并且有一个额外的好处,那就是更难忘记一个案例:

auto it = command_table.find(c);
if (it != command_table.end())
{
command.type = it.second;
commands.push_back(command);
}

关于c++ - 如何在一个switch中实现多个case的一些独占语句和一些公用语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43545618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com