zoukankan      html  css  js  c++  java
  • C++ 动态数组

     在平常敲代码的时候  一般的题目会说明题目数据最大是多少   这时候 我可以把需要使用的数组按最大值开空间

    但是在一些时候题目可能并不会告诉你最大值    它直接就是先输入一个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类型的值

  • 相关阅读:
    python爬虫第二天
    sqlite3 数据库创建表
    python 中的nonlocal
    python中 random.seed()函数
    每日一题6/5
    竞赛191
    二进制操作, ~按位取反, | 或, & 与, ^异或, >倍数
    竞赛190
    css BFC
    css动画 Vs js动画
  • 原文地址:https://www.cnblogs.com/52why/p/7569397.html
Copyright © 2011-2022 走看看