2022.10.22-C++学习笔记
part1 : 数组
1、为什么使用数组
解决大量同类型的数据的存储和使用问题
大部分语言都有数组,数组是很常见的存储数据的结构
2、数组不是学习的重点
很少使用数组,使用的是以数组为内核,别人给造的更方便的工具
3、数组的名称代表数组中第一个元素的地址
4、一维数组
怎样定义一维数组
1、为n个变量连续分配存储空间
2、所有的变量数据类型必须相同
3、所有变量所占的字节大小必须相等
有关一维数组的操作
1、初始化
完全初始化
int a[5] = {1,2,3,4,5} ;
不完全初始化,未被初始化的元素自动为零
int a[5] = {1,2,3} ;
不初始化,所有元素是垃圾值
int a[5] ;
清零
int a[5] = {0} ;只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的
错误写法:
int a[5];
a[5] = {1,2,3,4,5};2、赋值
3、排序
4、求最小/最大值
5、倒置
6、查找
7、插入
8、删除
5、二维数组
1、表示形式
int a[3][4];
总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是:a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
int a[m][n] : 该二维数组右下角位置的元素只能是a[m-1][n-1] .2、初始化
int a[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10,11,12}
};
3、输出二维数组
for(int i = 0;i < 3;i++){
for(int j = 0;j < 4;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
4、对二维数组排序
5、求每一行的最大值
6、判断矩阵是否对称
7、矩阵的相乘
6、多维数组
1、是否存在多维数组
不存在, 因为内存是线性一维的,n维数组可以当做每个元素是 n-1维数组的 一维数组。比如:
int a[3][4];
该数组是含有3个元素的一维数组
只不过每个元素都可以再分成4个小元素
int a[3][4][5];
该数组是含有3个元素的一维数组
只不过每个元素都是4行5列的二维数组