gpt4 book ai didi

c++ - 优化条件

转载 作者:行者123 更新时间:2023-12-01 14:13:48 25 4
gpt4 key购买 nike

我有一个关于 ifforwhile 循环中条件的简单问题。有什么方法可以让我用更少的代码行来验证这个条件吗?

if (are_you_sure != "Si" && are_you_sure != "si" && are_you_sure != "No" && are_you_sure != "no")

我不认为我可以最小化上面的代码,但我想确定一下。

最佳答案

如果您有一个函数可以为您做到这一点,您可以编写更少的代码,并使其更具可读性:

if (none_of( are_you_sure, "Si", "si", "No", "no"))
// ...

当然,那个函数是必须要写的,但是用c++17 fold-expressions写的代码不会太多:

template<typename T, typename ...Opts>
auto none_of(T val, Opts ...opts)
{
return (... && (val != opts));
}

这有一些不错的属性;它可以接受任意数量的参数,也可以与字符串以外的类型一起使用:

int n = 42;
if (none_of( n, 1, 2, 3))
// ...

确保给函数命名,因为这会影响可读性。

关于c++ - 优化条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61447353/

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