首页 > 其他分享 >动态数组简介

动态数组简介

时间:2023-04-04 10:06:44浏览次数:43  
标签:include int 简介 数组 大小 using 动态


                                        动态数组

定义:

动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。

特点

数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。

动态数组就可以在任何时候改变大小。在Visual Basic中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。

如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。

C++-----申请动态数组

 

//一维动态数组
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    int *p;
    cin>>n;//输入你想要的数组大小
    p=new int[n];//向操作系统申请n+1个int 性连续空间
    for(int i=0;i<n;i++)
    {
        p[i]=i;
        cout<<p[i]<<" ";//输出0 1 2 3 4
    }
    delete []p;//记得释放

    return 0;
}
//二维动态数组
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;//n行数,m列数
    cin>>n>>m;
    int **p=new int*[n];//申请行
    if((p)==0)
    {
        cout<<"fasle"<<endl;
        return 0;
    }
    for(int i=0;i<n;i++)//申请列
       {
        p[i]=new int[m];
        if(p[i]==0)
        {
        cout<<"fasle"<<endl;
        return 0;
        }
       }
        // 初始化
       for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            p[i][j] = i;
      //输出
      for(int i=0;i<n;i++)
      {
       for(int j=0;j<m;j++)
        cout<<p[i][j]<<" ";
         cout<<endl;
      }
      //释放内存
      for(int i=0;i<n;i++)
        delete p[i];
      delete []p;
	return 0;
}

以前天真的认为动态数组就是vector,所以顺便整理一下vector,

【点这里】


标签:include,int,简介,数组,大小,using,动态
From: https://blog.51cto.com/u_14932227/6167906

相关文章

  • 最长连续序列(并查集、数组)、复原 IP 地址(字符串、回溯)、删除链表的倒数第 N 个结
    最长连续序列(并查集、数组)给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)__的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4......
  • 最小覆盖子串(哈希表、字符串)、两数之和(数组、哈希表)、二叉树的层序遍历 II(树、广
    最小覆盖子串(哈希表、字符串)给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。**注意:**如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s="ADOBECODEBANC",t="ABC"输出:"B......
  • 动态代理
    动态代理2.1好处:​ 无侵入式的给方法增强功能2.2动态代理三要素:1,真正干活的对象2,代理对象3,利用代理调用方法切记一点:代理可以增强或者拦截的方法都在接口中,接口需要写在newProxyInstance的第二个参数里。2.3代码实现:publicclassTest{publicstaticvoidmain(......
  • Android 在程序中动态添加 View 布局或控件
    有时我们需要在程序中动态添加布局或控件等,下面用程序来展示一下相应的方法:1、addView添加View到布局容器2、removeView在布局容器中删掉已有的View3、LayoutParams 设置View的大小位置下面来看一个demo;publicclassMainActivityextendsActivity{ @Override protectedvo......
  • 字符串和数组类型详解
    一.字符串1.正常的字符串我们使用单引号,或者双引号包裹2.注意转义字符\\'转义打印一个单引号\n换行\t表格打印\u4e2d\u####Unicode字符\x41Ascll字符3.多行字符串的编写``,这个符号在tab键上面,英文键盘varmsg=`......
  • 剑指offer(Java)-数组中的逆序对(困难)
    题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例1:输入:[7,5,6,4]输出:5限制:0<=数组长度<=50000解题思路:这道题的核心在于归并排序,在归并排序的基础上进行求解逆序对。题解参......
  • 016redis3.0集群简介
    一、基本概念1、redis集群是一个可以在多个节点之间进行数据共享的设施。redis集群提供了以下两个好处1.1将数据自动切分(split)到多个节点1.2当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。2、一个Redis集群包含16384个哈希槽(hashslot),数据库中的每......
  • 进程间通信的概念-简介
    进程间通信的概念进程是一个独立的资源分配单元,不同进程(这里所说的进程通常是指用户进程)之间的资源是独立的,没有关联。不能在一个进程中访问另一个进程的资源。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信(IPC:InterprocessesCommunica......
  • 「动态规划」LeetCode 70(爬楼梯)
    Leetcode70题有人问我:烤冷面你这两周怎么总搞简单题?我想说:一步一步来~题干简述给定:假设你正在爬楼梯,需要爬n阶你才能到达楼顶。每次你可以爬1或2个台阶。要求:计算出有多少种爬楼梯的方式。解题思路如果我们缩小视野(把大问题化为小问题),爬到第n阶台阶有两种方式:......
  • (4.3)数组、对象及类数组对象,set的用法,正则表达式的常用方法,蓝桥杯备赛-(生成数组、数
    1.1数组、对象及类数组对象1.数组:​ 数组是有序的数据集合,其中的索引值从0开始递增,并且数组有length属性,可以获取数组内的元素个数,其中的值可以是任何的数组类型。2.对象:​ 对象是无序的是由一个或多个键值对组成的数据集合,对象没有length属性。3.伪数组(类数组对象):​ ......