数组的声明
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()方法拿到的数据一样呢?其实原因是为了更高效的操作,提高效率,不要一遍一遍的扩容了。