当前位置: 首页 > news >正文

C++学习笔记系列2-25

二维数组的元素访问,及“增”、“删”、“查”、“改”的简单介绍

注意事项:

1、对于二维数组来讲,无论是查找、修改都要在数组范围内进行,决不能越界,这一点和一维数组一样。

2、在初始化二维数组时,也可以用一个 0 初始化,其后所有位置由 0 补齐。

3、二维数组也是一个静态数组,即:初始化后不能再次修改数组的长度,因此在使用前要确定好数组的行、列数量。

二维数组的访问

列索引值

0 1 2

00 0 0 1 0 2

行索引值 11 0 1 1 1 2

22 0 2 1 2 2

二维数组访问元素是通过 2 个索引号进行读取的,如:arr[ 0 ][ 0 ],这就是读取以上阵列中左上角的存储值,如果arr [ 2 ][ 2 ],则是读取右下角的值,以此类推。

二维数组的遍历

二维数组通常使用“ for循环 嵌套 for循环 ” 的方式进行数组的遍历,主要因为是二维数组有 2 个索引值,for循环中自带 1 个可以自增的变量,如果使用 2 个就可以很好的和二维数组的 2 个索引值进行匹配,并且完全符合二维数组的输出特点,如下:

依此阵列为例,我们创建一个二维数组

#include <iostream>

using namespace std;

int main()

{

int arr [ 3 ] [ 3 ] = { 1,2,3,

4,5,6,

7,8,9 };

// 上面声明了一个 3 行 3 列的数组,如果我们输入索引号为:arr [ 0 ][ 0 ],则输出值为:1

//如arr [ 2 ][ 0 ],则输出值为:7,即:2行,0列;

//arr [ 1 ][ 2 ],则输出值为:6,即:1行,2列;

// 还是老问题如果索引值非常大我们就不能使用这种方式输出了,就要使用 for_for 方式

// 首先我们先计算二维数组的行数、列数,如下:

int hang = sizeof(arr)/ sizeof(arr[ 0 ]); // 获取数组行数

int lie = sizeof(arr[ 0 ]) / sizeof( int ) ; // 获取数组列数

// 双层for循环,先执行外层for,再进内部for,内部for循环执行完毕,再返回到外部for循环

for( int i = 0; i < hang; i++)

{ // 程序首次执行,此时 i 的值为 0 ,向下执行内部for,执行完则 i++ ,然后判断

for( int j = 0; j < lie; j++)

{ // 进入内部for,此时 i 是 0 ,j 是 0,因此下方输出值为:1

// 判断条件后,满足 j < lie 时,此时 i 是 0,j 是 1,输出:2

// 判断条件,此时此时 i 是 0,j 是 2,输出:3

cout <<arr[ i ][ j ]<< " ";

// 执行完输出操作后,执行 j++,再进行条件判断,满足则循环,不满足结束循环

}

cout << endl; // 进行换行操作,然后回到外部 for 进行循环操作

}

}

输出:1 2 3

4 5 6

7 8 9 i j i j i j

整个流程中,索引号的变化,从左到右、从上到下,就是:0 0 | 0 1 | 0 2

1 0 | 1 1 | 1 2

2 0 | 2 1 | 2 2

http://www.jsqmd.com/news/1056832/

相关文章:

  • 合肥理工学校怎么样?升学率怎么样?管理严不严? - 教育为先
  • Django+PostgreSQL在Ubuntu 14.04生产环境部署实战
  • 终极指南:如何用Parsec VDD虚拟显示驱动重塑远程办公体验 ✨
  • i.MX 6 GPU加速实战:OpenGL ES 2.0实现嵌入式实时图像处理
  • 嵌入式中断与输入捕获实战:MC68HC908EY16解码RC-5协议控制LIN机器人
  • 本地部署AI大模型四大路径实战指南:Ollama、LM Studio、llama.cpp与Dify深度对比
  • 基于LTIB的MPC8548E嵌入式Linux BSP开发与调试实战
  • MC68HC705C8A与DS2430A:经典嵌入式系统设计中的1-Wire协议实现与实战
  • Snap.Hutao:基于现代Windows技术栈的开源游戏数据管理解决方案
  • Grok 4.1 实战接入指南:128K上下文精确计算与Function Calling 2.0工程落地
  • 欧洲卡车模拟2智能驾驶辅助完全指南:ETS2LA让你的虚拟卡车之旅更轻松
  • 基于ZigBee的低成本V2I驾驶辅助系统:从原理到工程实践
  • UI自动化测试效率提升:从脚本稳定到CI/CD集成的工程实践
  • 终极窗口分辨率编辑器:3分钟掌握SRWE游戏窗口自由调整
  • League Akari:英雄联盟玩家的智能助手,提升游戏体验的完整指南
  • wNetKAT:基于加权自动机的定量网络验证框架解析
  • MPC8245嵌入式Linux移植实战:内核配置、DINK32引导与网络部署全解析
  • QQBot:5分钟搭建智能QQ机器人,实现自动化消息处理全攻略
  • AI优先正在杀死工程文化?Meta几周毁掉二十年积累;DeepSeek-V4百万上下文登场 | 科技日报
  • AI建站工具选型指南:产品经理如何选出最适合自己的那一款
  • 你的微信聊天记录,真的安全吗?三分钟学会永久保存每一段珍贵对话
  • Qwen2.5实战指南:上下文长度、MoE路由与量化选型深度解析
  • 基于逆强化学习的电竞选手风格化选秀系统:从行为反推意图的AI伯乐
  • MC68HC908MR24 SCI模块实战:寄存器配置、中断处理与避坑指南
  • WaveTools鸣潮工具箱:免费开源的游戏性能优化与数据分析终极指南
  • MiniMax-M2:MoE+Agentic+AST编码的工程化落地实践
  • 从零到专家:驾驶仿真器、CG、3DGS、智能体运动与强化学习接口完整教学文档
  • DINO视觉模型中的寄存器令牌机制:原理、实现与注意力可视化分析
  • 电动车托运铅酸电池2026新规:能随车吗? - 快递物流资讯
  • 3倍速解析Android OTA包:payload-dumper-go实战全解析