我有一段类似下面的c ++ 11代码:
switch(var) {
case 1: dosomething(std::get<1>(tuple));
case 2: dosomething(std::get<2>(tuple));
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法删除这个大型交换机?请注意,get<var>
这不起作用,因为var不是常量,但我知道var在小范围内,即(0-20).
请注意,这里的要点是避免使用导致数组查找的数组...
编辑:
在性能问题上,讨论 了if和switch语句的函数数组的性能
出于我自己的目的,我不认为哪一个更好.