0
2次元配列を行ごとにシャッフルしたい。私は自分自身これを行うことができます2D配列をC++の行でシャッフルする
arr = {{1,0},{1,1},{0,0},{0,1}};
:たとえば、シャッフル後
arr = {{0,0},{0,1},{1,0},{1,1}};
は、私はこのようなものが必要。しかし、標準的な機能はあるのだろうか?
2次元配列を行ごとにシャッフルしたい。私は自分自身これを行うことができます2D配列をC++の行でシャッフルする
arr = {{1,0},{1,1},{0,0},{0,1}};
:たとえば、シャッフル後
arr = {{0,0},{0,1},{1,0},{1,1}};
は、私はこのようなものが必要。しかし、標準的な機能はあるのだろうか?
あなたはこのように、std::shuffle()
アルゴリズムを使用することができるはずです。
#include <algorithm>
#include <iostream>
#include <random>
int main() {
int arr[][2] = {{0, 0}, {0, 1}, {1, 0}, {1, 1}};
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(std::begin(arr), std::end(arr), g);
for(auto &row: arr)
std::cout << row[0] << ',' << row[1] << '\n';
return 0;
}
は、[標準アルゴリズム機能]を見てみましょう(http://en.cppreference.com/w/cpp/algorithm)私はそこに何かを見つけることができると確信しています。 –