一、静态数组
基本性质: 数组长度固定,不可增加元素;
1、一维数组的构建
①长度为一个常数整型
char a[3];
②长度为一个已经赋值过的变量
int n;
cin>>n;
char *a=new char[n];
int m=3;
float *b=new float[n];
2、二维数组的构建
类似于一种嵌套关系,二维数组的每个元素都相当于一个一维数组;
以下为n*m二维数组的构建
①已知二维数组的长宽
int g[3][2] = { {1,2},{2,4},{3,9} };
②长度为一个赋值参数
如下二维数组的m,n都需要从键盘输入获取;
int m, n;
cin >> m >> n;
char** a = new char*[n];
for (int i = 0; i < n; i++)
a[i] = new char[m];
二、动态数组:容器
头文件
#include<vector>
基本性质:长度不固定,可增加元素
1.容器的构建
vector<int> m={1,2,3}; //正常初始化赋值
vector<int> m(3); //定义3个整型元素空间,但未赋予初始值,默认为0
vector<int> m(3,1); //定义3个整型元素空间,但都赋予初始值 1
vector<int> m(b) //将容器b的值赋予m,值复制
vector<int> m(b.begin(),b.begin()+3); //从b的第0个到第2个(共3个)复制
//将数组复制给容器
vector<int> s(b,b+7); //b为数组时,将b的0~6个元素复制给s
...
2.容器的基本操作
①元素的遍历
//方法1
vector<int> vec={0,1,2,3}; //容器
for (int i = 0; i < size(vec); i++)
cout << vec[i];
//方法二
for (vector<int>::iterator s = vec.begin(); s != vec.end(); s++)
cout << *s;
②元素的添加
vector<int> vec={0,1,2,3};
vec.push_back(4); //放在最后面
b.insert(b.begin(), 8); //将第0个元素换成8
③元素的删除
vector<int> vec={0,10,20,30,40,50,60,70,80,90};
//删除某个位置上的元素
vec.erase(vec.begin()+3);//删除从起始位置开始数后面第3个元素,也就是vec[3],删除30;
//删除某一段元素
vec.erase(vec.begin()+1,vec.begin()+5);//删除从10~50该段元素;
④其它基本函数操作
vector<int> vec;
vec.empty(); 判断容器是否为空;
vec.clear(); 将容器全部清空
vec.size(); 容器长度
vec.front() 返回容器的第一个元素
vec.swap(s) 容器vec与容器s的元素互换
参考自 :https://blog.csdn.net/wkq0825/article/details/82255984?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161157063416780299084851%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=161157063416780299084851&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-82255984.pc_search_result_cache&utm_term=c++vector