获取数组的大小
要获取数组的大小,可以使用 sizeof()
运算符:
示例
int myNumbers[5] = {10, 20, 30, 40, 50};
cout
结果:
20
为什么结果显示为 20 而不是 5,当数组包含 5 个元素时?
这是因为 sizeof()
运算符返回类型的大小(以字节为单位)。
要找出数组有多少个元素,必须将数组的大小除以服务器托管它包含的数据类型的大小:
示例
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(int);
cout
结果:
5
使用 sizeof()
循环遍历数组
然而,通过使用上面示例中的 sizeof()
方法,现在我们可以创建适用于任何大小数组的循环,这更加可持续。
与其写:
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i
最好写成:
示例
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i
请注意,在 C++ 版本 11(2011)中,还可以使用“for-each”循环:
示例
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i : myNumbers) {
cout
了解不同的数组循环方式是很重要的,因为你可能在不同的程序中都会遇到它们。
多维数组
多维数组是数组的数组。
要声明一个多维数组,请定义变量类型,指定数组名称,后跟方括号,指定主数组有多少元素,然后再跟另一组方括号,表示子数组有多少元素:
string letters[2][4];
与普通数组一样,你可以使用数组文字 – 在花括号内部的逗号分隔列表。在多维数组中,数组文字中的每个元素都是另一个数组文字。
string letters[2][4] = {
{ "A", "B", "C", "D" },
{ "E", "F", "G", "H" }
};
数组声明中的每组方括号都会向数组添加另一个维度。像上面的数组被称为具有两个维度的数组。
数组可以具有任意数量的维度。数组的维度越多,代码就越复杂。以下数组具有三个维度:
string letters[2][2][2] = {
{
{ "A", "B" },
{ "C", "D" }
},
{
{ "E", "F" },
{ "G", "H" }
}
};
访问多维数组的元素
要访问多维数组的元素,请在数组的每个维度中指定索引号。
此语句访问 letters
数组中第一行(0)和第三列(2)的元素的值。
string letters[2][4] = {
{ "A", "B", "C", "D" },
{ "E", "F", "G", "H" }
};
cout
记住:数组索引从 0 开始:[0] 是第一个元素。[1] 是第二个元素,依此类推。
更改多维数组中的元素
要更改元素的值,请引用每个维度中元素的索引号:
string letters[2][4] = {
{ "A", "B", "C", "D" },
{ "E", "F", "G", "H" }
};
letters[0][0] = "Z";
cout
循环遍历多维数组
要循环遍历多维数组,你需要为数组的每个维度使用一个循环。
以下示例输出 letters
数组中的所有元素:
string letters[2][4] = {
{ "A", "B", "C", "D" },
{ "E", "F", "G", "H" }
};
for (int i = 0; i
此示例显示如何循环遍历三维数组:
string letters[2][2][2] = {
{
{ "A", "B" },
{ "C", "D" }
},
{
{ "E", "F" },
{ "G", "H" }
}
};
for (int i = 0; i
为什么使用多维数组?
多维数组非常适合表示网格。此示例展示了它们的实际用途。在以下示例中,我们使用多维数组表示一个小型的战舰游戏:
// 我们放置 “1” 来表示那里有一艘船。
bool ships[4][4] = {
{ 0, 1, 1, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 1, 0 },
{ 0, 0, 1, 0 }
};
// 通过这些变
量跟踪玩家击中了多少船以及玩家已经玩了多少轮
int hits = 0;
int numberOfTurns = 0;
// 允许玩家继续进行,直到他们击中了所有四艘船
while (hits > row;
// 要求玩家输入一列
cout > column;
// 检查这些坐标是否存在船只
if (ships[row][column]) {
// 如果玩家击中了一艘船,将其删除并将值设置为零。
ships[row][column] = 0;
服务器托管 // 增加击中计数器
hits++;
// 告诉玩家他们击中了一艘船以及剩下多少艘船
cout
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 花了100块大洋搞懂 ipv6的用户如何访问ipv4 服务器
大家好,今天蓝胖子花了100多块搞懂了 ipv6的用户如何访问ipv4 服务器,将收获与大家分享下。 ipv4服务器托管网和ipv6的协议栈不同,这意味着,其对应的ip包的封装和解析不同,那么只支持ipv4的机器就无法直接与ipv6的服务器进行通信。但目前已经…