gpt4 book ai didi

c++ - 在 C++ 中获取没有 if-else 的字符串变量

转载 作者:行者123 更新时间:2023-11-27 23:56:54 25 4
gpt4 key购买 nike

是否可以使用字符串获取变量的值,以尽量减少使用大型 if-else 语句。例如:

string a = "hello world";
string b = "foo";

string input;

cout << "a or b";
cin >> input;

//is something like the next line possible?
cout << "your answer is equal to " << string_to_variable(input) << endl;

如果用户输入“a”,这应该输出“hello world”,如果用户输入“b”,则输出“foo”。

谢谢。

最佳答案

Is it possible to obtain the value of a variable using a string to minimize the use of large if-else statements.

您可以使用 std:map<std::string, std::string>使编程更容易,但在此之下,它仍然使用大量比较和 if-else类型检查。

std::map<std::string, std::string>> mymap = {{"a", "hello world"}, {"b", "foo"}};

std::string input;

cout << "a or b";
cin >> input;

//is something like the next line possible?
cout << "your answer is equal to " << maymap[input] << endl;

如果你想让你的代码更精确,你可以使用:

auto it = mymap.find(input);
if ( it == mymap.end() )
{
cout << "There is no answer corresponding to " << input << endl;
}
else
{
cout << "your answer is equal to " << it->second << endl;
}

代替

cout << "your answer is equal to " << maymap[input] << endl;

关于c++ - 在 C++ 中获取没有 if-else 的字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42031478/

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