首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA数组(一)基础知识

三、数组的维度 讲解VBA数组前,首先说明下数组的维度概念,因为在使用VBA数组时都需要明确数组的维度。可以通过将Excel表格来形象化的去理解数组维度,特别是常用的一维和二维。...四、索引号、上界和下界 在使用数组时首先确定的是维度。而不同的维度都有不同的范围。类似Excel表格中单元格区域的行号和列号范围。在数组中称为索引号,同时索引号均为整数。...(不同于Excel中的列为字母。) 数组维度起始和结束的数值起名叫下界和上界。每个维度的下界和上界是独立的。...数组的维度主要在声明数组时使用,用户定义两者的值,而通过下界和上界的数值可以计算数组的容量大小。数组中单个维度的范围为 (上界-下界+1),数组的大小为各个维度范围相乘。...或者在声明数组时第一维下界从1开始。也可以从其他数值开始(上界要大于下界),这些后面介绍声明数组时会有详细介绍。

4.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解 Java 泛型

    其二,在声明和使用泛型的类和方法中,在 class 文件层面,需要有一个额外的表结构来记录存在泛型参数时的类和方法签名,这个表名为 Signature,是虚拟机规范定义的 class 文件中类、方法、字段可能存在...、super 和 extend 我们或许看到过以下代码: List list = new ArrayList(); List的上界和下界。举个例子: 我们定义三个类,名为 A B C,继承关系为:B 继承于 A,C 继承于 B。现在,我们创建一个 List 容器: List时,我们规定的只是上界,不是下界,这样的话可能的引用类型就会有无限多种(一个非 final 的类可以有无数个子类)。...好了,在这篇文章中我们探讨了一下关于 Java 中泛型的一些小秘密,相信你对泛型一定有了一个不错的理解。 界,下界一旦确定,可以接收的对象的类型也确定了(下界类型本身或者下界类型父类的对象)。

    93420

    kotlin入门之泛型

    Java的泛型类型会在编译时发生类型擦除,为了保证类型安全,不允许这样赋值、 至于什么是类型擦除,等下再讲。 在实际使用中,我们的确会用这种类似的需求,需要实现上面这种赋值。...extends TextView的限制条件,所以get出来的对象,肯定是TextView 的子类。根据多态的特性,能够赋值给TextView。 到了add操作时,我们可以理解为: List的泛型之后,我们在回头看一下kotlin中的泛型。 kotlin 中的out和in kotlin和java泛型一样,kotlin中的泛型本身也是不可变的。...-使用关键字out来支持协变,等同于Java中的上界通配符? extends -使用关键字in来支持逆变,等同于Java中的上界通配符?...var list: List 和 Java 不同的地方是,如果你的类型定义里已经有了out或者 in, 那这个限制在变量声明时也依然在,不会被*号去掉。

    1.2K20

    逆向知识第八讲,if语句在汇编中表达的方式

    其中 >在高级语言中不能这样写的, 所以得出的还原代码为 if(argc == 0) eax =0 else eax == -1  二丶if else 的第二种情况(减少分支) 高级代码:... 由此判定, argc和var4比较,jnz(不相等)但因为汇编中是反条件,所以是相等的情况下 4.因为jnz是一个地址,所以这个地址是一个下界,那么jnz上面的比较代码则是上界,在其内部,我们还原为if...首先,找if else的时候,先确定上下界 地址: 101A位置   寻得了 if的上界 地址: 101E位置  寻得了 if的下界 注意: 中间划掉了两个指令,这两个指令是流水线优化,平栈的指令.所以没有帮助...else语句块的上界,其上面固定一个jmp(注意其地址跳转是一个增量)那么跳转的地址是else的下界 重点代码外提: 我们可以看到 我们的if语句块中 push了一个 hello,我们的else语句块中...四丶多分支if elseif  .... else的还原 这个其实很简单了.如果是多分支,则寻找上界下界即可. 因为编译器做的东西很多了.

    76960

    Java泛型的上下界

    准备工作 有如下类的继承关系,为下文理解做好准备 2. 没有泛型上下界遇到了什么问题?...extends Fruit> plate = new ArrayList(); 复制代码 那么?我们该如何理解上界? ? 是java的通配符,在如上的例子中,上界?...能存,其实也能取,为什么说其实也能取呢,因为我看了一些文章,为了区分上下界,让它们的特点完全相反,都把下界的特点都写成了不能取,其实在代码中实践,能取出来,只不过会使其中的元素类型失效,取出来的元素类型都是...isEmpty()) { fruits.add(pop()); } } 复制代码 PECS原则 该如何理解生产者和消费者呢,?...extends T上界,如果一个参数类型是消费者的话,那么就采用的是? super T下界 ---- 巨人的肩膀 Java 泛型 中 super 怎么 理解?

    50711

    java泛型之泛型边界

    根据其种类,可以分为无界(unbounded)、上界(upper bound)和下界(lower bound)。其泛型边界决定了输入(input)和输出(output)分别能接受什么类型。   ...考虑以下代码:  Object[] array = new String[1]; array[0] = 12.450F;  这段代码是可以通过编译的,然而会让静态类型的Java语言在没有任何强制类型转换的情况下出现类型异常...可能很多人都没有用过下界通配符,因为其真的很少用。其主要用处之一是在使用Java或第三方的API的泛型类时,对泛参类型不同,但泛参具有继承关系,且主要关注其输入的泛型对象进行归纳。...泛型也叫参数化类型,顾名思义,通过给类型赋予一定的泛型参数,来达到提高代码复用度和减少复杂性的目的。   在Java中,泛型是作为语法糖出现的。...将所有有上界(upper bound)的通配符理解为其上界类型例如将被理解为CharSequence类型。

    2.1K10

    O、Θ、Ω、o、ω,别再傻傻分不清了!

    Θ同时定义了上界和下界,f(n)位于上界和下界之间,且包含等号。...好了,如果Θ你能理解了,下面四个就好理解了。 O O定义了算法的上界。...比如,对于插入排序,我们可以说它的时间复杂度为Ω(n),不过,这通常没有什么意义,因为插入排序在最好的情况下很少,基本都是在最坏情况或者平均情况。...通俗理解 符号 含义 通俗理解 Θ 精确的渐近行为 相当于“=” O 上界 相当于“<=” o 松上界 相当于“<” Ω 下界 相当于“>=” ω 松下界 相当于“>” 小结 为了帮助同学们快速查阅英文资料...不过,在我们平时与人交流的过程中,大家还是习惯于使用大O表示法,一来它表示最坏情况,最坏情况通常可以直接代表算法的复杂度,二来它比较好书写。

    4.6K20

    Michael Jordan新研究:采样可以比优化更快地收敛

    其中优化理论中的工具已经被用于证明 MCMC 采样中的收敛速率——通常还包括维度相关性。这些结果显示的总体信息是采样比优化要慢,这一结果符合普遍观点,即采样方法只有在需要其提供更强的输出推理时才合理。...然而,关于这两种方法论之间关系的理论理解非常有限,对其相对优势和劣势的理解也比较缺乏。此外,现有的结果主要是在凸函数(用于优化)及对数凹函数(用于采样)中获得的。...仔细考虑非凸半径 R 和维度 d 之间的相对尺度是很有趣的(对于常数 Lipschitz 平滑度 L);当 R 是常量或者小于 O(log d) 时,采样通常比优化更容易;当 R≤√ d 时,采样的收敛上界仍然比优化复杂度下界稍低...;当 R>√ d 时,其对比是不确定的;并且当 R>d 时,相反的结论成立。...此外,开发其它类型的非凸性的下界和上界理论也是很有趣的。 ? 深度神经网络的目标函数是高度非凸的,但使用优化方法(SGD)却能达到很好的效果。这篇论文能为深度学习优化带来新的思路吗?

    68920

    AABO:自适应Anchor设置优化,性能榨取的最后一步 | ECCV 2020 Spotlight

    [1240]   贝叶斯优化的完整流程如上面所示,在每轮的迭代中基于替代模型和采集函数获取一组超参数,然后使用目标模型进行验证,最后将验证结果加入观测数据集并更新替代模型。...Upper and Lower Limits of the Anchors   论文对COCO数据集目标的尺寸和长宽比进行统计,并且得到了ratio的上界和下界: [1240] [1240] [图4]...  统计结果如上图所示,其中蓝点为每个目标,黄线分别为上界和下界,中间的黑色长方形为BOHB搜索实验的搜索空间。...可以看到,有一部分的搜索空间在上界和下界之外,是无效的搜索,所以约束搜索空间在上界和下界之间是有必要的。另外,图中有5个红色的框,是论文为RPN的每层设定的对应搜索空间,下面会提到。...[图6]   基于上面的分析,论文设计了自适应FPN的搜索空间,图4中的5个红框与上下界之间的区域即为FPN每层对应的搜索空间。

    90200

    VBA数组(四)数组函数

    VBA中操作数组的函数主要有以下几个,LBound函数和UBound函数、Array函数、IsArray函数、Erase函数、Split函数、Join函数,后面分两节介绍数组函数。...LBound和UBound函数 介绍声明数组时说明过数组每个维度都有下界和上界,每个维度的下届和上界都可以自定义设置,它们通常用于获得动态数组不同维度的上界和下界。...语法结构如下,分别获得某个数组某个维度的下界和上界: LBound(数组名[,维数]) UBound(数组名[,维数]) 其中“维数”为1时表示“一维”,为2时表示“二维”,为3时表示“三维”,依次类推...示例以一个三维的静态数组为例,声明静态数组的,三个维度分别是1 to 2 、2 to 5和默认下界0 to 3,所以变量i为Arr第一维的下届结果为1,变量h为Arr第二维的上界为5,变量k为Arr数组第三维的下界为默认的...这对于Variant变体型变量,在程序中类型可能发生改变,IsArray函数常用。

    5.3K40

    详解线性回归、朴素贝叶斯、随机森林在R和Python中的实现应用!(附代码)

    主要学习在R语言和Python中这些算法的理论和实现应用。 谁能从这篇指南中获益最多? 本文要讲的内容,可能是作者写过的最有价值的指南了。...我将提供对于多个机器学习算法的高水平理解,以及运行这些算法的 R语言代码和Python代码。这些应该足够让你亲自动手试一试了。 ?...R 语言代码: 6. kNN K-最近邻算法(k- Nearest Neighbors) kNN算法可用于分类和回归问题。然而,K–最近邻算法更常用于行业中的分类问题。.../ Python 代码: R 语言代码: 如果你了解R语言中的Caret包的话,以下是实现LightGBM的快速方法。...着手解决问题,加深对过程的理解,将这些代码用起来并从中发现乐趣! 这篇文章对你来说有帮助吗?请在下面评论区分享你的观点和想法。

    2.8K10

    清华&华为提出AABO:自适应最优化Anchor设置,性能榨取的最后一步 | ECCV 2020 Spotlight

    贝叶斯优化的完整流程如上面所示,在每轮的迭代中基于替代模型和采集函数获取一组超参数,然后使用目标模型进行验证,最后将验证结果加入观测数据集并更新替代模型。...Upper and Lower Limits of the Anchors   论文对COCO数据集目标的尺寸和长宽比进行统计,并且得到了ratio的上界和下界: ? ? ?...图4   统计结果如上图所示,其中蓝点为每个目标,黄线分别为上界和下界,中间的黑色长方形为BOHB搜索实验的搜索空间。...可以看到,有一部分的搜索空间在上界和下界之外,是无效的搜索,所以约束搜索空间在上界和下界之间是有必要的。另外,图中有5个红色的框,是论文为RPN的每层设定的对应搜索空间,下面会提到。...图6   基于上面的分析,论文设计了自适应FPN的搜索空间,图4中的5个红框与上下界之间的区域即为FPN每层对应的搜索空间。

    89720

    需求可拆分及带时间窗的车辆路径规划问题(SDVRPTW)简介

    VRPTW的介绍见下面推文: 干货|十分钟快速掌握CPLEX求解VRPTW数学模型(附JAVA代码及CPLEX安装流程) 在实际生活中,客户需求也可能会大于车辆的最大载重,在要求一辆车至多访问客户一次的条件下...对于任意行驶成本和行驶时间均满足三角不等式关系的SDVRPTW实例,存在一个最优解具备以下几个性质: 性质1:对解中任意两条路线,它们共同访问的客户数目不超过1个。...因为模型在求解的时候会先进行松弛,为了使模型下界更好,通常会引进有效不等式,所以需要以下符号定义,假设U是客户集合N的一个子集。...将上述过程最终得到的LP solution作为当前分支定界树节点的下界,并通过引进违反的有效不等式作为Cuts,加入到当前RLMP的约束中,再调用列生成过程改进下界,直到找不到违反的Cuts时停止列生成迭代...,得到改进后的下界,则算法需要判断以下三种情况: 如果改进后的下界大于等于当前最优上界,则节点被剪枝; 如果改进后的下界小于当前最优上界,且为整数解,则更新为当前最优上界; 如果改进后的下界小于当前最优上界

    3.1K41

    深入理解Java泛型(二)通配符与嵌套

    所有调用代码无论往容器里面插入Apple或者Meat或者Fruit编译器都不知道能不能和这个“CAP#1”匹配,所以这些操作都不允许。...我的一个理解是:Plate代表某个只能放某种类型水果的盘子,而不是什么水果都能往里放的盘子 但是上界通配符是允许读取操作的。...例如代码: Fruit fruit=p.get(); Object object=p.get(); 这个我们很好理解,由于上界通配符设定容器中只能存放Fruit及其派生类,那么获取出来的我们都可以隐式的转为其基类...所以上界描述符Extends适合频繁读取的场景。 下界通配符 下界通配符的意思是容器中只能存放T及其T的基类类型的数据。我们还是以上面类层次的来看,上界不能往里存,只能往外取,适合频繁往外面读取内容的场景。下界不影响往里存,但往外取只能放在Object对象里,适合经常往里面插入数据的场景。 <?

    70310

    Java 泛型使用

    泛型的作用 泛型提供的功能有:参数化类型,以及编译期类型检查。 1 参数化类型 在方法的定义中,方法的参数称为形参,在实际调用方法时传递实参。...这里使用的字符E并无特殊含义,只是为了便于理解而已。...这种对集合的使用方式存在两个问题:一是add添加元素时,因为元素声明为Object类型,任意类型元素都可以添加到集合中,所以在添加元素时需要使用者自己注意选择的元素类型;二是get取元素时需要强制类型转换...可以表示所有类型,当然也可以表示Integer类型,所以代码可以编译通过。 在平常的使用中,类型的选择范围并非如此随意,更多时候在定义泛型类、接口或方法时,限定了能够使用的类型范围。...根据以上两点,在类的描述中,不能使用的形式限定参数类型的下界。

    81020

    需求可拆分及带时间窗的车辆路径规划问题(SDVRPTW)简介

    VRPTW的介绍见下面推文: 干货|十分钟快速掌握CPLEX求解VRPTW数学模型(附JAVA代码及CPLEX安装流程) 在实际生活中,客户需求也可能会大于车辆的最大载重,在要求一辆车至多访问客户一次的条件下...对于任意行驶成本和行驶时间均满足三角不等式关系的SDVRPTW实例,存在一个最优解具备以下几个性质: 性质1:对解中任意两条路线,它们共同访问的客户数目不超过1个。...因为模型在求解的时候会先进行松弛,为了使模型下界更好,通常会引进有效不等式,所以需要以下符号定义,假设U是客户集合N的一个子集。...将上述过程最终得到的LP solution作为当前分支定界树节点的下界,并通过引进违反的有效不等式作为Cuts,加入到当前RLMP的约束中,再调用列生成过程改进下界,直到找不到违反的Cuts时停止列生成迭代...,得到改进后的下界,则算法需要判断以下三种情况: 如果改进后的下界大于等于当前最优上界,则节点被剪枝; 如果改进后的下界小于当前最优上界,且为整数解,则更新为当前最优上界; 如果改进后的下界小于当前最优上界

    2.2K10

    重学Java之泛型的基本使用

    简单总结一下,引入泛型的好处,将类型当做参数,可以让开发者可以在不同的输入使用相同的代码,我的理解是,提升代码的可复用性,在编译时执行更强的类型检查,消除类型转换,用泛型实现通用的算法。...在遍历中可以调用上界的方法。下界通配符有上界通配符对应的就有下界通配符,上界通配符限制的是传入的类型必须是限制类型或限制类型的子类型,而下界类型则限制传入类型是限制类型或限制类型的父类型。...extends Number>复制代码下面这张图声明了用上界和下界通配符声明的几个List类之间的关系:该怎么理解这幅关系图呢? Integer是Number的子类,所以List理解似乎更自然。通配符捕获和辅助方法在某些情况下,编译器会尝试推断通配符的类型。例如一个List被定为List,编译器执行表达式的时候,编译器会从代码中推断出一个具体的类型。...如果需要使用入参可以使用定义在Object类中的方法时,使用无界通配符。

    37610

    泛型的初步认识(1)

    泛型可以应用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法,之后将一一介绍。 我们使用泛型的好处在于可以提高代码的重用性和安全性,避免了类型转换的错误和运行时异常。...泛型可以让代码更加简洁、清晰,同时也可以提高代码的可读性和可维护性。...这样可以确保在使用泛型时,只能传入符合上界要求的类型。...这样,在创建Box对象时,只能传入Number类及其子类的实例作为泛型参数。 所以这就是我们泛型的上界的 定义与使用。...而对于泛型既然有上界,那么肯定有下界,对于下界它在泛型的进阶中,我们打算数据结构结尾部分再讲泛型的进阶部分。 现在先把泛型的基础打牢再说。

    8910
    领券