gpt4 book ai didi

c++ - 使以下C++代码简洁高效

转载 作者:搜寻专家 更新时间:2023-10-31 00:11:29 25 4
gpt4 key购买 nike

我有一个包含 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++;
}

最佳答案

你是对的,你可以做得更好:

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)
}

关于c++ - 使以下C++代码简洁高效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com