有没有一种简单的方法让next_permutation在两个相同大小的不同数组中执行相同的交换操作呢?
例如,如果我有两个数组
a[]={1,2,3,4,5}
和b[]={12,23,21,2,3}
,
如果在a数组中,第一个位置的元素被置换到了第三个位置,那么b数组中的12也应该被置换到第三个位置。int a[] = { 1, 2, 3, 4, 5 };
int b[] = { 12, 23, 21, 2, 3 };
std::size_t indices[] = { 0, 1, 2, 3, 4 };
indices
进行排列,然后使用a[indices[i]]
和b[indices[i]]
。int a[] = { 1, 2, 4, 3 };
int b[] = { 11, 12, 14, 13 };
这些将被排列相同,因为排序将产生相同的索引顺序。