数组定义
静态数组(固定长度):
type var_name[size];
其中type定义了数组的基本数据类型,即各元素的数据类型,size定义了数组的元素数目。必须是常数或常数变量。
动态数组(不定长度):
(1)new方法
一维数组:
cin<<size;
type* var_name = new type[size];
其中new本就是用来开辟动态空间的,这里可看作是分配了一个大小为size的未初始化的type类型的数组,并返回指向该数组第一个元素的指针
该方法存在的缺陷是无法直接获取到数组的长度,此时的指针不是数组的名字,仅是数组第一个元素
此时的sizeof(var_name)/sizeof(var_name[0]) = 1
同时该方法需要delect释放空间
多维数组:
for (int i = 0; i < size; i++) {
p[i] = new int[Column];
}
(2)vector方法
vector(向量)是一个封装了动态大小数组的顺序容器(Sequence Container),可以看做是一个能够存放任意类型的动态数组
基本操作:
1)创建vector对象:vector<type> vec_name;
2)尾部插入数字:vec_name.push_back(a);
3)使用下标访问元素,vec_name[0]
4)使用迭代器访问元素
vector<int>::iterator it;
for(it=vec_name.begin();it!=vec_name.end();it++)
cout<<*it<<endl;
5)插入元素: vec_name.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
6)删除元素: vec_name.erase(vec.begin()+2);删除第3个元素
vec_name.erase(vec_name.begin()+i,vec_name.end()+j);删除区间[i,j-1];区间从0开始
7)向量大小:vec_name.size();
8)清空:vec_name.clear();
该方法存在的问题
较之new数组方法效率低,https://blog.csdn.net/chhuach2005/article/details/21281933