如何在C++中拖动2D数组

如何在C++中拖动2D数组,c++,arrays,C++,Arrays,我在论坛上搜索,只找到了使用Java或Javascript的洗牌解决方案。对于我的项目,我需要能够洗牌二维卡片组阵列。这是在两个维度内,能够有西装和卡分数可用。 cardDeck[5][14]是我的阵列。要指定,我不需要将每个值移动到不同的位置,也不需要因为数组的设计方式而在行之间移动。每一行代表一套西装,每一列代表一张从1到13的卡片分数。我试着在cplusplus网站上查看shuffle函数,但我并不真正理解函数原型是如何工作的。有人能帮我洗牌吗?我感谢你的帮助 我之所以这样设计它,是因为对

我在论坛上搜索,只找到了使用Java或Javascript的洗牌解决方案。对于我的项目,我需要能够洗牌二维卡片组阵列。这是在两个维度内,能够有西装和卡分数可用。 cardDeck[5][14]是我的阵列。要指定,我不需要将每个值移动到不同的位置,也不需要因为数组的设计方式而在行之间移动。每一行代表一套西装,每一列代表一张从1到13的卡片分数。我试着在cplusplus网站上查看shuffle函数,但我并不真正理解函数原型是如何工作的。有人能帮我洗牌吗?我感谢你的帮助

我之所以这样设计它,是因为对于我的项目,我需要使用一个名为Deck的类,其中包含前一个项目的纸牌游戏的两个对象。
cardDeck[3][5]={0,1,2,3,4}{0,1,2,3,4}{0,1,2,3,4};是我的数组的较小版本。但在我的程序中,我使用一个成员函数来填充数据组,因此我不必写出52项。

一种方法是:

创建一个大小为5*14的一维数组。 将数组元素的值设置为0-5*14-1。 洗牌1D阵列。 遍历一维数组的元素,并通过将一维索引映射到二维索引来移动二维数组中的元素。
一种方法是:

创建一个大小为5*14的一维数组。 将数组元素的值设置为0-5*14-1。 洗牌1D阵列。 遍历一维数组的元素,并通过将一维索引映射到二维索引来移动二维数组中的元素。
请记住,我没有编译这些代码中的任何一个,因此代码中可能有一些错误

以下是如何使用std::shuffle在任意数组中洗牌元素:

包括 包括 包括 包括 包括 int main { //在元素范围内运行的STL函数通常需要 //迭代器作为参数,因此您的数据必须在一个iterable中 //容器,如std::vector或std::array 向量v={1,2,3,4,5,6,7,8,9,10}; //初始化随机数生成器引擎 std::随机_装置rd; 标准:mt19937 grd; //第一个参数是向量v[0]开头的迭代器 //第二个参数是向量v[v.size-1]末尾的迭代器 //第三个参数是rng引擎 std::shufflev.begin,v.end,g; 汽车i:v{
请记住,我没有编译这些代码中的任何一个,因此代码中可能有一些错误

以下是如何使用std::shuffle在任意数组中洗牌元素:

包括 包括 包括 包括 包括 int main { //在元素范围内运行的STL函数通常需要 //迭代器作为参数,因此您的数据必须在一个iterable中 //容器,如std::vector或std::array 向量v={1,2,3,4,5,6,7,8,9,10}; //初始化随机数生成器引擎 std::随机_装置rd; 标准:mt19937 grd; //第一个参数是向量v[0]开头的迭代器 //第二个参数是向量v[v.size-1]末尾的迭代器 //第三个参数是rng引擎 std::shufflev.begin,v.end,g; 汽车i:v{
STD:你可以用C++的OOP特性来更好地实现你的卡和甲板。你不理解STD::洗牌?请提供一些示例性的骨架代码,初始化你的CARDAKE的一个较小的示例版本,也许只是3x5,一个部分,我想在这里洗,还有一个部分显示你想要什么。要使输出看起来像.IMHO,您应该实现一个结构,例如Card,来表示一张卡:struct Card{char suit;int value;}@JohnFilleau当我查找它时,它显示了shuffle RandomAccessIterator first,RandomAccessIterator last,URNG&&g,我还不太熟悉术语,所以我不理解RandomAccessIterator或UniformRandomNumberGeneratorUNRG作为参考。底部有一些示例演示如何使用随机数生成器有了它,迭代器就有了指针,所以它们是向后兼容的。要传递数组的第一个和最后一个迭代器,需要传递&arr[first\u index],&arr[first\u index+num\u elements]您可以使用C++的OOP特性来更好地实现您的卡和甲板。您不理解STD::洗牌?请提供一些示例性骨架代码,初始化您的CARDAKE的较小示例版本,可能只是3x5,这是我想在这里进行洗牌的部分,以及显示您想要的OutPU的部分。t要看起来像.IMHO,您应该实现一个结构,例如Card,来表示一张卡:struct Card{char suit;int value;}。@JohnFilleau当我查找它时,它首先显示了shuffle RandomAccessIterator,RandomAccess
迭代器last,URNG&&g,我对术语还不是很熟悉,所以我不理解RandomAccessIterator或UniformRandomNumberGeneratorUNRG作为参考。底部有一些示例演示了如何使用随机数生成器。迭代器的设计考虑了指针,因此它们是向后兼容的。要传递数组的第一个和最后一个迭代器,需要传递&arr[first\u index]、&arr[first\u index+num\u elements]关键字,这可能有助于第4步:跨步。是的,我知道这可能会更容易。我只是不明白如何使用shuffle函数,因为这是我的类尚未涉及的。@killerkodygaming,您可以在.Keyword上看到示例代码,这可能有助于第4步:步幅。是的,我知道这可能会更容易。我只是不明白如何使用shuffle函数,因为这是我的类尚未涉及的内容。@killerkodygaming,您可以在中看到示例代码。