gpt4 book ai didi

c++ - 如何制作高效的C++跳转表?

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

我是 C++ 的初学者,我已经实现了以下简单的跳转表,但想知道我是否以正确的方式进行操作。无论如何我可以改进以下代码吗?

以下代码使用字典(我来自 C# 背景)来存储函数的指针。

#include <cstdio>
#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

void Zero() { printf("Zero\n"); }
void One() { printf("One\n"); }
void Two() { printf("Two\n"); }
void Three() { printf("Three\n"); }

string prompt()
{
printf("Enter number from 0 to 3 or q to quit:\n");
string line;
getline(cin, line);

return line;
}

int main(int argc, const char * argv[]) {

unordered_map<string, void(*)()> map;

map["0"] = Zero;
map["1"] = One;
map["2"] = Two;
map["3"] = Three;

while (true) {
string c = prompt();
if (c == "q") break;

map[c]();
}
return 0;
}

最佳答案

switch 语句怎么样?

switch (c) {
case 0:
printf("Zero\n"); break;
case 1:
printf("One\n"); break;
case 2:
printf("Two\n"); break;
case 3:
printf("Three\n"); break;
default:
break;
}

关于c++ - 如何制作高效的C++跳转表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256330/

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