【问题标题】:A standard/popular class to easily manage truth tables in C++?在 C++ 中轻松管理真值表的标准/流行类?
【发布时间】:2023-02-21 18:18:32
【问题描述】:

给定一个包含 5 个输入和一个输出的真值表,函数原型如下:

bool compute(bool in1, bool in2, bool in3, bool in4, bool in5);

在 STL 或其他库中的某个地方,是否有一个类可以轻松有效地管理此类功能的实现?

特别是,我们的想法是能够使用一种数组轻松地编写真值表,如下所示:

some_type truth_table = [[0,0,0,0,0,0],
[0,0,0,0,1,1],
[0,0,0,1,0,1]
...];

理想情况下,类可以通过避免不必要的行评估来“优化”真值表。

This postthis post 开始回答问题,但使用自定义宏/实现。

【问题讨论】:

  • 你在找什么图书馆或班级?您需要布尔运算符,还有什么?一个简单的蛮力不会比一些聪明的技巧低效。证明我错了,我对此表示怀疑。
  • 顺便说一句,询问图书馆是题外话
  • 好吧,不知道就很难回答什么你在说真值表。
  • “像这样:”你忘记包含你的代码了吗?
  • @463035818_is_not_a_number 很抱歉出现错误,但是,关于您的 cmet,很明显您得到了我的要求。

标签: c++ truthtable


【解决方案1】:

如果你想检查是否所有提供的值都是true,你可以制作一个可变参数函数模板并对逻辑 AND 进行折叠:

template<class... Args>
bool compute(Args&&... bools) {
    return (... && bools);
    //     ^^^^^^^^^^^^^^  fold over &&
}

【讨论】:

  • 请注意,OP 链接已经重复,但声明他们不想要代码,他们想要一个库。无论哪种情况,问题都是题外话。
猜你喜欢
  • 2018-04-19
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多