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

【C++ 入坑指南】(09)数组

在这里插入图片描述

文章目录

    • 简介
    • 一维数组
      • 1. 定义
      • 2. 特点
      • 3. 用途
      • 4. 示例
    • 二维数组
      • 1. 定义
      • 2. 用途
      • 3. 示例

简介

C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

一维数组

1. 定义

一维数组定义的三种方式:

  • 数据类型 数组名[数组长度];如:int arr[10];
  • 数据类型 数组名[数组长度] = {值1,值2,…}; 如:int arr[3] = {3,5,7};
  • 数据类型 数组名[ ] = {值1,值2,…};如:int arr[ ] = {1,2,3};

2. 特点

  • 放在一块连续的内存空间中;
  • 数组中的每个元素都是相同数据类型;
  • 数组的下标是从零(0)开始索引。
  • 数组名是一个常量,不允许重新赋值。

3. 用途

  • 可以统计整个数组在内存中的长度; sizeof(arr)
  • 可以获取数组在内存中的首地址;cout << arr << endl;

4. 示例

示例一:五只小猪中,找最轻的小猪。

#include <iostream>using namespace std;int main0()
{// 五只小猪称体重,找出并打印最轻的小猪int arr[] = { 300,350,200,400,250 };int min = arr[0];int length = 0;length = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < length; i++){if (arr[i] <= min) {min = arr[i];}}cout << "最轻的小猪体重为 :" << min << endl;return 0;
}

示例二:数组元素逆置。

#include <iostream>using namespace std;int main()
{// 数组元素逆置int arr[] = { 2,1,3,5,4 };int length = sizeof(arr) / sizeof(arr[0]);int start = 0;   //记录第一个下标int end = length - 1;  //记录最后一个下标int temp = 0;  // 临时变量,记录元素while (start < end) {temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}cout << "数组逆置后为:" << endl;for (int i = 0; i < length; i++) {cout << arr[i] << endl;}return 0;
}

示例三:冒泡排序。

#include <iostream>using namespace std;int main()
{// 冒泡排序int arr[] = { 2,12,16,88,5,10,7,3 };int length = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < length - 1; i++){for (int j = 0; j < length - 1 - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}cout << "排序后:" << endl;for (int i = 0; i < length; i++) {cout << arr[i] << endl;}return 0;
}

二维数组

在这里插入图片描述

1. 定义

二维数组定义的四种方式:

  • 数据类型 数组名[行数][列数];
  • 数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4},…};
  • 数据类型 数组名[行数][列数] = {数据1,数据2,数据3,…};
  • 数据类型 数组名[ ][列数] = {数据1,数据2,数据3,…};

建议:以上4中定义方式,采用第二种更加直观,提高代码的可读性。

2. 用途

  • 可以查看占用内存空间的大小;sizeof[arr];
  • 可以查看二维数组的首地址;

3. 示例

示例:使用 C++ 实现杨辉三角

#include <iostream>using namespace std;int main()
{// 杨辉三角int arr[5][5];// int row = sizeof(arr) / sizeof(arr[0]);// int col = sizeof(arr[0]) / sizeof(arr[0][0]);for (int i = 1; i <= 5; i++){for (int j = 1; j <= i; j++){if(j == 1 || j == i){arr[i][j] = 1;}else{arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }}}// 打印for (int i = 1; i <= 5; i++){for (int j = 1; j <= i; j++){cout << arr[i][j] << " ";}cout << endl;}return 0;
}

输出结果:
在这里插入图片描述

http://www.lryc.cn/news/69375.html

相关文章:

  • Vue.js
  • 博士毕业答辩流程 注意事项
  • 拼多多开放平台订单详情接口解析
  • 如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总
  • 由浅入深了解 深度神经网络优化算法
  • LIN-报文结构
  • 南京邮电大学通达学院2023c++实验报告(三)
  • ISO9000和ISO9001有哪些区别?
  • 第7章异常、断言和曰志
  • springboot读取和写入csv文件数据
  • 【产品经理】工作交接
  • Springer期刊 latex投稿经验分享
  • Python 文件读取的练习
  • Redis:主从复制_通过此功能实现对内存上的数据更好的保护
  • LoRA:大模型的低秩自适应微调模型
  • 拼多多买家如何导出“个人中心”订单信息
  • 11.计算机基础-计算机网络面试题—基础知识
  • cs109-energy+哈佛大学能源探索项目 Part-1(项目背景)
  • ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
  • Fixed Function Shader
  • HTML- 标签学习之- 列表、表格
  • Canal搭建 idea设置及采集数据到kafka
  • CentOS7搭建伪分布式Hadoop(全过程2023)
  • Linux中文件描述符fd和文件指针filp的理解
  • CSS color中常用英文色值
  • Springboot idea 中 maven配置问题,找不到依赖:Could not find artifact xxxx
  • 编译原理笔记(一)引论
  • C++ 类和对象下 [补充]
  • [CTF/网络安全] 攻防世界 PHP2 解题详析
  • 图神经网络:(节点分类)在Cora数据集上动手实现图神经网络