C++中使用内存堆空间时,若已知整体数据量的大小,则优先分配一定空间再使用;不能一边分配内存一边使用
例如:
已知需要加载一部分文件数据到内存中,且文件数据中记录的是一个一个同一类的实例对象数据
数据文件结构:总的对象个数 + 连续的对象数据
加载读取数据方式一:
1、读取对象总个数
2、利用对象总数首先分配一定的堆空间
3、for循环中读取一个一个的对象数据,并赋值到2中分配的内存空间中
加载读取方式二:
1、while循环中,每次读取一个对象数据,直至文件结束
2、循环体中,每次向系统申请一个对象大小的堆空间,并读取一个对象数据,赋值到刚才分配的空间中
加载读取方式一 优于 方式二:一次性向系统申请足够的内存,只需new一次,且系统给出的堆空间地址连续;比方式二多次调用new申请空间开销小很多