gpt4 book ai didi

c++ - 检查大量类似条件的简单方法?

转载 作者:IT老高 更新时间:2023-10-28 12:55:17 25 4
gpt4 key购买 nike

我正在开发一款游戏,我发现自己经常检查某些数量是否在代表我的世界的 vector 所接受的索引范围内:

if(a >= 0 && a < 16 && b >= 0 && b < 16 && c >= 0 && c < 16 && 
d >= 0 && d < 16 && e >= 0 && e < 16)
{
//do things with vector[a][b][c][d][e]
}

我经常需要检查比这更多的条件。有没有办法让这些检查更简洁和/或更易于阅读?

或者,有没有办法可以完全避免进行检查? vector 为16x16x16x16x16;我可以这样做吗,如果我给它一个 16 作为索引,它除了段错误什么都不做?

最佳答案

你可以写一个可变参数check函数:

bool check(int a) {
return 0 <= a && a < 16;
}

template<typename... Args>
bool check(int a, Args... args) {
return check(a) && check(args...);
}

您可以像 check(a, b, c, d, e, ...) 一样使用它。它还有一个优点是可以接受任意数量的条件。

Here's a demo

关于c++ - 检查大量类似条件的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814957/

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