假设我有一个数组A = {212,323,234,567,545,765},现在我想改组这个数组,以便将值随机排列
就像洗牌后一样,可以是A = {234,765,212,545,323,567}
我不知道如何解决此问题的任何线索?
答案 0 :(得分:3)
选中std::shuffle
和std::equal
。文档中有一些示例可以为您提供帮助。
答案 1 :(得分:0)
对于基本的改组,您想使用std::shuffle。
#include <algorithm>
#include <array>
#include <random>
#include <iterator>
#include <iostream>
int main()
{
// Create mersenne twister RNG
std::random_device rd;
std::mt19937 g(rd());
// Initialize Array A
std::array<int, 6u> A{ 212,323,234,567,545,765 };
// Print A
std::copy(A.begin(), A.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
// Shuffle A
std::shuffle(A.begin(), A.end(), g);
// Print A
std::copy(A.begin(), A.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
}