如何使用random_shuffle来混淆2D数组C ++

时间:2014-02-18 05:49:30

标签: c++ random shuffle

我有一个2D矢量对象,我想要将它们洗牌。这是什么语法?

    class node{
    public:
        string hex_type = "E";// empty to start
        int Xcoordinate;
        int Ycoordinate;
        vector<reference_wrapper<node>> neighbors;


    };
nodes = vector<vector<node> >(size, vector <node>(size));//filled elsewhere
random_shuffle(&nodes[0][0], &nodes[size-1][size-1]);

这会产生一个错误,即访问违规读数

1 个答案:

答案 0 :(得分:0)

如果你有2d数组n x m,你可以把它放在一个像这样的1d数组中:

b[i * m + j] = a[i][j];

然后你可以改组数组b和用户反向转换

a[i / m][i % m] = b[i];