二维数组
二维数组本质上是以数组作为元素的数组, 即“数组的数组”, 在C++中,二维数组的格式如下:
类型 数组名[行数][列数];
例:int a[2][3]; 具体见示例图:
接下来看一下二维数组的地址魔法(请自己运行):
#include <bits/stdc++.h>
using namespace std;
int a[10][10] = {1, 4445, 44, 33};
int main()
{
cout << &a[0][10] << endl;
cout << &a[1][0] << endl;
/*
第二组
cout << &a[0][20] << endl;
cout << &a[2][0] << endl;
*/
return 0;
}
多维数组
多维数组是三维及其以上的数组,三维数组具有高、宽、深的概念,或者说行、列、层的概念,即数组嵌套数组达到三维及其以上, 三维数组定义如下:
类型 数组名[行数][列数][层数];
数组的操作
数组的基本操作包括:随机访问,查找,修改,插入,删除等
其中随机访问, 修改的时间复杂度为O(1), 插入,删除的时间复杂度为O(n)
查找
普通查找
又称顺序查找, 对于任意数组, 按顺序进行查找, 直到找到为止
二分查找
对于有序数组, 可以使用二分查找:
动态数组vector
给一张图,自行体会……
遍历法:
#include <bits/stdc++.h>
using namespace std;
vector <int> v(11, 105);
int main()
{
for(auto i : v)
{
cout << i << " ";
}
return 0;
}