C++ 制作以下C++;代码简洁高效

C++ 制作以下C++;代码简洁高效,c++,coding-style,C++,Coding Style,我有一个由52个元素组成的数组,每个13个元素的值必须在1-13之间 例如: // Referring arr to an array of 52 elements arr[0] = 1; arr[1] = 2; arr[2] = 3; ... arr[10] = 11; arr[11]] = 12; arr[12] = 13; arr[13] = 1; and so on... 我提出的代码有4个for循环,每次从1到13循环,我认为这是非常低效的 int j = 1; f

我有一个由52个元素组成的数组,每个13个元素的值必须在1-13之间

例如:

// Referring arr to an array of 52 elements


arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
...
arr[10] = 11;
arr[11]] = 12;
arr[12] = 13;
arr[13] = 1;

and so on...
我提出的代码有4个for循环,每次从1到13循环,我认为这是非常低效的

int j = 1;  
    for(int i = 0; i < 13; i++){
        deck[i].suit = 'H';
        deck[i].value = j;
        j++;
    }
    j = 1;
    for(int i = 13; i < 26; i++){
        deck[i].suit = 'D';
        deck[i].value = j;
        j++;
    }
    j = 1;
    for(int i = 26; i < 39; i++){
        deck[i].suit = 'S';
        deck[i].value = j;
        j++;
    }
    j = 1;
    for(int i = 39; i <= 51; i++){
        deck[i].suit = 'C';
        deck[i].value = j;
        j++;
    }
intj=1;
对于(int i=0;i<13;i++){
甲板[i]。西服='H';
甲板[i]。数值=j;
j++;
}
j=1;
对于(int i=13;i<26;i++){
甲板[i]。西装='D';
甲板[i]。数值=j;
j++;
}
j=1;
对于(int i=26;i<39;i++){
甲板[i]。套装='S';
甲板[i]。数值=j;
j++;
}
j=1;

对于(int i=39;i你是对的,你可以做得更好:

char suits[] = "HDSC";

for (int i = 0; i < 52; ++i) {
    deck[i].value = (i % 13) + 1; // this is a number from [1,13]
    deck[i].suit = suits[i / 13]; // i/13 is a number from [0,4)
}
char suites[]=“HDSC”;
对于(int i=0;i<52;++i){
数据组[i]。值=(i%13)+1;//这是来自[1,13]的数字
deck[i].suit=suits[i/13];//i/13是[0,4]中的数字
}

令人印象深刻!谢谢!