标签:let 使用 输入 动态数组 定义 class 一个 初始化 内存
在平常敲代码的时候 一般的题目会说明题目数据最大是多少 这时候 我可以把需要使用的数组按最大值开空间
但是在一些时候题目可能并不会告诉你最大值 它直接就是先输入一个n 然后输入n个数据 可不告诉你n的最大值
简单来说 就是 :普通的数组在编译的时候 我们就需要知道数组的大小 而动态数组的话就不需要
那我们来了解一下动态数组的使用:
每一个程序在执行的时候 都会占用一块可用的内存空间 用来存放动态分配的对象 此空间被称为“自由存储区”或者“堆”
在C语言中 我们使用malloc和free来分配自由存储区的空间
在C++中 我们使用new 和 delete 来实现相同的功能
int *a=new int[12];//创建空间为12的整数型数组 string *str=new string[12];//创建string型数组 int *b=new int[12]();//创建整数型数组 并初始化为0 delete []a;//释放为a数组开辟的空间
从上面说的 并没有说明 为什么可以不在编译的时候 确定数组的大小 原因是我们在代码中应该这样使用
int n; cin>>n; int *a=new int[n];
也就是说 根据每一个测试案例的大小来开辟空间 这样就不会造成内存的浪费
另外在这提一下const型的动态数组
const类型的动态数组 在你定义的时候 必须初始化 因为我们不能改变const类型的值
标签:let 使用 输入 动态数组 定义 class 一个 初始化 内存
原文地址:http://www.cnblogs.com/52why/p/7569397.html