我在 C++ 中有一个包含未知条目的数组(最少 6 个)我需要一个 for 循环(可能包括一些 for 循环),它构成 3 组,每组 2 个。我不关心组的顺序或组中的顺序。棘手的部分是不允许重复计算。我试过这样的东西,但显然是三重计数......
for(int i = 0; i < nArray - 1; i++)
{
  for(int j = i+1; j < nArray; j++)
  {
    for(int k = 0; k < nArray - 1; k++)
    {
      for(int l = k+1; l < nArray; l++)
      {
        for(int m = 0; m < nArray - 1; m++)
        {
          for(int n = m+1; n < nArray; n++)
          {
            if(k!=i && k!=j && l!=i && l!=j && m!=i && m!=j && n!=i && n!=j && m!=k && m!=l && n!=k && n!=l)
            {
              std::cout << array[i] << "-" << array[j] << std::endl  << array[k] << "-" << array[l] << std::endl << array[m] << "-" << array[n] << std::endl << std::endl;
            }
          }
        }
      }
    }
  }
}
编辑:例如让我们的数组是 {1,2,3,4,5,6},它有 6 个条目。输出应如下所示:
 12-34-56
 12-35-46
 12-36-45
 13-24-56
 13-25-46
 13-26-45
 14-23-56
 14-25-36
 14-26-35
 15-23-46
 15-24-36
 15-26-34
 16-23-45
 16-24-35
 16-25-34
但不应该有 12-43-56 或 34-12-56,因为有 12-34-56。
对于数组 {1,2,3,4,5,6,7}
12-34-56
12-34-57
12-34-67
12-35-46
12-35-47
12-35-67
...
等等。