我有一个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]);
这会产生一个错误,即访问违规读数
答案 0 :(得分:0)
如果你有2d数组n x m,你可以把它放在一个像这样的1d数组中:
b[i * m + j] = a[i][j];
然后你可以改组数组b和用户反向转换
a[i / m][i % m] = b[i];