迭代所有布尔组合

lez*_*lon 2 c++ testing

在我要测试的函数中,我有~10个布尔值,它通过一系列if-else改变我的函数的结果等等.我想自动运行所有可能的组合.我想做一个std :: vector,每个元素指向我的10个布尔值中的一个.现在是否有一个通用的算法来迭代我的向量中的bool值的所有组合?

谢谢

Luc*_*ore 6

不是真的用户友好,发布这只是为了好玩:

bool b[10];
for ( int i = 0 ; i < 1024 ; i++ )
{
   for ( int j = 0 ; j < 10 ; j++ )
   {
      b[j] = i & (1 << j);
   }
   testFunction (b[0],....,b[9]);
}
Run Code Online (Sandbox Code Playgroud)