设置等于整个数组C 的数组的元素

Setting an element of an array equal to an entire array c++

本文关键字:数组 元素 设置 于整个      更新时间:2023-10-16

我正在创建一张宾果卡牌。甲板知道甲板上的卡数量,卡的大小以及出现在卡上的最大数字。

我想创建唯一随机整数的n数组(卡),然后将这些数组中的每个数组添加到另一个数组(甲板)的每个元素。因此,一个数组。

ex。

card1 = {1, 2, 5};
card2 = {3, 7, 2};
deck = {card1, card2};

这是我到目前为止的代码:

Deck::Deck(int cardSize, int cardCount, int numberMax){
    int randInt;
    int size = cardSize * cardSize;
    int deckArr[cardCount];
    for(int t = 0; t < cardCount; t++){
        int arr[size];
        for(int i = 0; i < size; i++){
            randInt = computeRandInt(numberMax, cardSize);
            if(arr[i] == 0) arr[i] = randInt;
            else if (randInt != arr[i-1]) arr[i] = randInt;
        }
        deckArr[t] = arr;
    }
}

我从" int*"转换为" int"的错误转换无效。如何声明我的甲板阵列存储这些卡数组?

在C 中,您可以通过嵌套向量来处理数组,例如deckArrvector<vector<int>>。请注意,deckArr实际上应该是Deck的成员(而不是局部变量);只是稍微调整了您的代码以显示嵌套向量的想法:

Deck::Deck(int cardSize, int cardCount, int numberMax){
    int randInt;
    int size = cardSize * cardSize;
    vector<vector<int>> deckArr(cardCount);
    for(int t = 0; t < cardCount; t++){
        vector<int> arr(size);
        for(int i = 0; i < size; i++){
            randInt = computeRandInt(numberMax, cardSize);
            if(arr[i] == 0) arr[i] = randInt;
            else if (randInt != arr[i-1]) arr[i] = randInt;
        }
        deckArr.push_back(arr);
    }
}