数组的声明
type arrayName [arraySize];
一维数组
例如:
声明一个int类型的数组
//一维数组
int ints[5] = {1,2,3,4,5};
for (int i = 0; i < 5; ++i) {
cout << ints[i] << " ";
}
cout << endl;
二维数组
//二维数组
int intss[3][3] = { {1,2,3},
{1,2,3},
{1,2,3}
};
for(int i = 0;i<3;i++)
{
for(int j = 0;j<3;j++)
{
cout << intss[i][j] << " ";
}
cout << endl;
}
cout << endl;
结果:
1 2 3 1 2 3 1 2 3
C++中面向对象的动态数组-Vector
与原始的数组有什么区别:
1、原始数组不能扩容; 2、原始数组的size是写死的; 3、原始数组会出现越界的情况。
简单数组这么容易出问题,此时,动态数组Vector诞生了。
首先引入必要的头文件:
#include "vector"
#include <stdio.h>
#include <iostream>
#include "vector"
using namespace std;
int main(void){
//动态数组
vector<int> va;
va.push_back(1);
va.push_back(2);
cout << "va size:" << va.size() << endl;
cout << "va capacity:" << va.capacity() << endl;
for (const auto &item : va){
cout << item << " ";
}
cout << endl;
va.push_back(122);
va.push_back(2333);
va.push_back(23334);
va.push_back(23335);
cout << "va size:" << va.size() << endl;
cout << "va capacity:" << va.capacity() << endl;
for (const auto &item : va){
cout << item << " ";
}
cout << endl;
return 0;
}
运行结果:
可以看到,Vector数组是动态的扩容的,也不需要用户手动指定需要存储的大小
va size:2
va capacity:2
1 2
va size:6
va capacity:8
1 2 122 2333 23334 23335
- va.size():查询该动态数组的当前值得大小
- va.capacity():查询该动态数组当前可容纳的数据量的多少
- 需要注意的是,这个capacity()方法拿到的数这个动态数组扩容后的大小。至于为什么不和size()方法拿到的数据一样呢?其实原因是为了更高效的操作,提高效率,不要一遍一遍的扩容了。