【发布时间】:2023-03-30 21:22:01
【问题描述】:
您好,我有以下 std::vector:
std::vector<int> source ={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
我想对其进行洗牌,以便对于给定的数字,例如 n = 4 是这样的输出向量:
std::vector<int> output = {3,2,1,0,7,6,5,4,11,10,8,9,15,14,13,12}
任何想法应该如何功能?
【问题讨论】:
-
对我来说它看起来不像是洗牌。您想在
n组中反转您的元素吗?标准算法适用于“范围”,而不是容器,因此使用您现有的算法技术应该很容易组合。玩std::reverse和整数算术运算,然后向我们展示你的想法。 -
除非有人“聪明”回答这个问题。
-
@mthe25 你是怎么得到 11,10,8,9 的?:)
-
@LightnessRacesinOrbit:您的意思是“迭代器上的算术运算”而不是“整数上的算术运算”吗?
-
@ChristianHackl:哈,是的,我做到了:)