STL中既然有了vector为什么还需要array
#include<iostream>
using namespace std;
#include<vector>
#include<array>
int main()
{
int a;
array<int,10> arr;
vector<int> vec(10);
int* b = new int(10);
cout << "a的地址" << &a << '\n';
cout << "arr的地址" << &arr[1] << '\n';
cout << "vec的地址" << &vec[1] << '\n';
cout << "b的地址" << b << '\n';
return 0;
}
/*
a的地址 0000008D4B92F634
arr的地址 0000008D4B92F65C
vec的地址 0000028B476929E4
b的地址 0000028B47687E20
看这些地址就可以发现,array的内存是在栈中的,而vector是在堆区的
*/
array是栈上的,把C数组给“标准化”,有大小信息,不会弱化为指针,不可以动态扩大。vector管理堆内存,可以动态扩容。