我有一个2D数组,定义为:
using value_type = std::array<std::pair<int, QChar>, 4>;
std::vector<value_type> arr;
其中first
是图书保留的列号(读作arr[col][j]
)。在形成数组时,列号按排序顺序(0, 1, 2, 3
)分配。
用户在运行时可以输入必须重新排序数组的“规则”。例如:2, 0, 3, 1
目前我已将此(=上述重新排序规则)硬编码为:
for (auto& it : arr)
{
std::swap(it[0], it[1]);
std::swap(it[0], it[2]);
std::swap(it[2], it[3]);
}
我希望让用户能够以各种方式重新排序; [3, 1, 0, 2], [0, 3, 2, 1]
,等等。我怎样才能做到这一点? :|