数组元素个数计算

数组元素一定是从1开始的,顺序递增且不包含元素nil。只有这种情况才能正确的计算个数

数组与HASH并存,数组索引从1开始顺序递增,且值不能未Nil

local a1 = { 1, 2, 3 }

local a2 = { [1]=1,  [3]=2,  [5]=3,  [7]=4 }

local a3 = { [2]=3, [10]=2, [20]=2 }

local a4 = { 2, name=‘yuanbl‘, 3, age=25, 5, 9 }

local a5 = { name=‘yuanbl‘, age=25, sex=‘男‘}

local a6 = { 2, name=‘yuanbl‘, 3, age=25, 5, 9, hello=nil, 10 }

计算(# 或 table.getn())结果如下:

3

1

2

4

0

5

它是怎么做到的?

分析: table.getn(t) 和 #t 一样都是计算数组元素但不包括hash键值,并且数组元素一定是从1开始的,顺序递增且不包含元素nil。只有这种情况才能正确的计算个数,可知a1正确;再来分析a2,查找1成立,接着查找2,没有找到,结束查找,返回结果为1;a3不满足条件产生呵呵的结果;a4、a5、a6同理可分析。

作者:Uzero
链接:https://www.jianshu.com/p/e9f6d85b57b9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/justart/p/12243702.html

时间: 2024-10-16 01:01:05

数组元素个数计算的相关文章

php统计数组元素个数

count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_count_value():统计每个特定的值在数组$array中出现过的次数; 如: $array=array(4,5,1,2,3,1,2,1); $ac=array_count_value($array); 将创建一个名为

C++之sizeof判断数组元素个数

sizeof用于判断数据占据的内存字节数. 如:sizeof(int)的为4. 因此,判断数组的元素个数写法如下: num=sizeof(array)/size(a[0]); 原文地址:https://www.cnblogs.com/cff2121/p/9846751.html

leetcode(2) 数组元素右移

描述:数组元素个数为n,右移k位,如12345,右移3位后是34512 解答思路:将12345全旋转得到54321 将前3位旋转34521 将后两位旋转34512 处理核心是旋转reverse(vector<int> &nums,int begin,int end) 旋转分隔点是k=k%n  (k是移动位数,n是数组长度) class Solution {public:    void reverse(vector<int>& num,int begin,int e

Problem X: 删除数组元素

Problem X: 删除数组元素 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 375  Solved: 151[Submit][Status][Web Board] Description 定义Array类,其中只有一个int类型的数组,数组元素个数未知. 重载其<<.>>.-运算符.其中"<<"输出所有的数组元素,两两之间用1个空格隔开:">>"根据输入的格式读取数

循环队列(循环数组)中元素个数的计算

队列头指针为front,队列尾指针为rear(指向队尾元素),after_rear为队尾元素的后一位置(按顺时针方向),队列容量为maxsize   如果用 front == rear 来表示队列为空,也就是说front和rear指向同一个位置,那么: 队列满时:(rear+1) mod maxsize == front 队列中元素个数为:(rear-front+maxsize) mod maxsize   如果用 rear == (front-1+maxsize) mod maxsize 来表

[单选题]以下哪个函数是用来取出PHP数组的元素个数的

array_reverse min count max 答案 C 实例 以相反的元素顺序返回数组: <?php $a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota"); print_r(array_reverse($a)); ?> 运行实例 定义和用法 array_reverse() 函数以相反的元素顺序返回数组. 说

(原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(5): 计算table元素个数:table.nums

这里的函数主要用来做:计算table元素个数.参考资料为quick_cocos. 星月倾心贡献~~~ 我们先看一段代码 local tbl = { [1] = 2, [2] = 2, [3] = 3 } print( "tbl length is " .. #tbl ) 这段代码是获得tbl的长度,即元素个数. 输出: tbl length is 3 拥有三个元素,没有问题.我们注意到元素的下标是,即key值是:1, 2, 3.即tbl[1], tbl[2], tbl[3].如果,我们

统计数组元素的个数和唯一性的函数

有些函数可以用来确定数组中的值总数及唯一值的个数.使用函数count()对元素个数进行统计,sizeof()函数时count()的别名,他们的功能是一样的. ①函数count() 函数count()的作用是计算数组中的元素数目或对象中的属性个数.对于数组,返回其元素的个数,对于其他值则返回1.如果参数是变量而变量没有定义或是变量包含一个空的数组,该函数会返回0.该函数有两个参数,其函数原型如下: int count(mixed var [,int mode]) 其中第一个参数是必需的,传入要计数

统计数组中重复元素个数

/** * 循环统计数组或集合中的重复元素个数 * @param args */ public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); String[] ss = {"白","黑","绿","白"}; for (int i = 0; i < ss.len