精华内容
下载资源
问答
  • 获取一个数组长度

    千次阅读 2019-01-28 15:57:36
    今天在https://blog.csdn.net/bopzhou/article/details/6063163上看到了如何获取一个数组长度,收藏一下。 #include <iostream> template <typename T> int length...

    今天在https://blog.csdn.net/bopzhou/article/details/6063163上看到了如何获取一个数组的长度,收藏一下。

    #include <iostream>
    template <typename T>
    int length(const T& arr) {
    	return sizeof(arr) / sizeof(arr[0]);
    }
    int main() {
    	int array[6] = { 1,2,3,4,5,6 };
    	std::cout << length(array) << '\n';
    }
    
    展开全文
  • 在php中获取数组长度方法很简单,php为我们提供了两函数可以计算数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几实例吧。 php如何获取数组的长度,使用php函数count(),或是sizeof() ...

    php中数组长度的获取

    在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧。
    php如何获取数组的长度,使用php函数count(),或是sizeof()
    例如:

    代码如下:


    <span style="font-family:SimSun;font-size:18px;">$arr = Array('0','1','2','3','4'); 
    echo count($arr);
    // 输出 5
    $arr = array('A','B','C');
    echo sizeof($arr);
    //输出3</span>



    sizeof()和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0;
    两函数功能一样,手册上讲,sizeof()是函数count()的别名。

    那么多维数组长度要怎么统计呢?继续看例子
    比如你读取的数组是一个二维数组:
     代码如下:

    <span style="font-family:SimSun;font-size:18px;"><?php
    $arr=array(
                     0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
                     1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
                    );
    ?></span>



    如果你想统计数组$arr的长度,也就是说该二维数组只有两条新闻,你想要的数字也是2,但是如果使用count($arr)不同版本的php,统计的结果是不一样的;
    后来在php手册中发现,count函数还有第二个参数,解释如下:
    count函数有两个参数:
    0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
    1(或COUNT_RECURSIVE)为检测多维数组,
    所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:
    代码如下:

    <span style="font-family:SimSun;font-size:18px;"><?php
    if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )
    {
      .....
    } else {
      .....
    }
    ?></span>



    你可以使用这样的代码来测试该函数:
    代码如下:

    <span style="font-family:SimSun;font-size:18px;"><?php
    $arr=array(
                     0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
                     1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
                   );
    echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
    echo "<br/>";
    echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
    ?></span>

    JavaScript数组长度的获取

    length 属性

        Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。下面是演示改变length属性的例子:

    <span style="font-family:SimSun;font-size:18px;">var arr=[12,23,5,3,25,98,76,54,56,76];
    
    //定义了一个包含10个数字的数组
    
    alert(arr.length); //显示数组的长度10
    
    arr.length=12; //增大数组的长度
    
    alert(arr.length); //显示数组的长度已经变为12
    
    alert(arr[8]); //显示第9个元素的值,为56
    
    arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃
    
    alert(arr[8]); //显示第9个元素已经变为"undefined"
    
    arr.length=10; //将数组长度恢复为10
    
    alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"</span>

        由上面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以显式的设置,它也有可能被隐式修改。JavaScript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时,length属性的值将被设置为所使用元素索引的值加1。例如下面的代码:

    <span style="font-family:SimSun;font-size:18px;">var arr=[12,23,5,3,25,98,76,54,56,76];
    
    alert(arr.length);
    
    arr[15]=34;
    
    alert(arr.length);</span>

        代码中同样是先定义了一个包含10个数字的数组,通过alert语句可以看出其长度为10。随后使用了索引为15的元素,将其赋值为15,即arr[15]=34,这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。事实上,使用new Array()形式创建的数组,其初始长度就是为0,正是对其中未定义元素的操作,才使数组的长度发生变化。

        由上面的介绍可以看到,length属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。因此对length属性的深入了解,有助于在开发过程中灵活运用。

    展开全文
  • 获取二维数组长度

    2020-05-28 17:32:05
    public class array_length { ... System.out.println("第数组长度为:"+data.length); System.out.println("第二维数组长度为:"+data[0].length); } } 输出结果: 第数组长度为:2 ..
    public class array_length {
        public static void main(String[] args) {
            String[][] data=new String[2][5];
            System.out.println("第一维数组长度为:"+data.length);
            System.out.println("第二维数组长度为:"+data[0].length);
        }
    }

     

    输出结果:

    第一维数组长度为:2

    第二维数组长度为:5

    展开全文
  • sizeof获取数组长度

    万次阅读 多人点赞 2016-10-06 21:17:38
    昨天开始看《算法导论》这本书,第一个算法就是(直接)插入排序,根据书里给出的伪代码写出了C语言代码,也根据自己的理解重新写了一个。虽然实现了算法的基本要求,但有些细节没有处理好,今天就来完善一下。 在...

    昨天开始看《算法导论》这本书,第一个算法就是(直接)插入排序,根据书里给出的伪代码写出了C语言代码,也根据自己的理解重新写了一个。虽然实现了算法的基本要求,但有些细节没有处理好,今天就来完善一下。

    在昨天实现的代码中,用来测试的数组int array[] = {5,2,4,6,1,3};是固定的,如果要更换待排序数组话,原来程序中的相关变量就会因为数组长度的改变要做相应的改变。我想要的就是给定任意的数组,在不修改任意代码的条件下实现插入排序。所以,核心问题就是怎么获取给定数组中的元素个数。

    自然而然想到的就是sizeof(C/C++中的一个操作符,其功能是返回一个对象或者类型所占的内存字节数)。

    一、首先来看看怎么获取整数数组的长度

    sizeof的语法形式如下:

    (1)sizeof( object ); // sizeof( 对象 );
    (2)sizeof( type_name ); // sizeof( 类型 );
    (3)sizeof object; // sizeof 对象;

    个人喜欢使用sizeof()的形式,因为形式统一,而且可以避免引起混乱导致出错。

    假设有一给定数组 int array[] = {5,2,4,6,1,3};

    length为数组array[]中的元素个数,那么

    length = sizeof(array)/sizeof(*array);            //表达式1
    //length = sizeof(array)/sizeof(array[0]);        //表达式2
    //length = sizeof(array)/sizeof(int);             //表达式3

    上述三个表达式都能得到正确的结果,虽然表达式略有不同,但原理是相同的,即通过sizeof(array)获取整个数组所占的内存字节数,再通过sizeof(*array)或者sizeof(array[0])或者sizeof(int)来获取每个元素所占的字节数,数组所占的字节数除以每个元素所占的字节数就是该数组的元素个数了。

    二、字符串数组长度的获取

    char str[] = {"This is a string!"};
    length = sizeof(str)-1;//包含空格

    之所结果要减1,是因为字符串结束符'\0‘在数组中占用了一个字节。

    三、源代码

    /**************************************
    *获取字符串长度(元素个数)  By 羽墨
    *print_length.c
    ***************************************/
    #include <stdio.h>
    
    void main()
    {
    	int array[] = {5,2,4,6,1,3};
    	char str[] = {"This is a string!"};
        int length = sizeof(array)/sizeof(*array);
    	printf("The length of string '%s' is %d\n",str,sizeof(str)-1);
    	printf("The length of array is %d\n",length);
    }

    运行结果

    The length of string 'This is a string!' is 17
    The length of array is 6

    四、注意

    1、如果在定义数组时就给定了数组的大小,如int array[len];,则不管数组中初始化了多少个(显然应不大于len)元素,最后的数组中的元素个数都是len。所以要想获得数组中真实元素的个数,在初始化数组时应注意这一点。

    2、向子函数传递数组后,然后在子函数内部获取数组长度。先来看一个错误示例程序:

    int getLength(int array[])
    {
        int length;
        length=sizeof(array)/sizeof(array[0]); 
        return length;
    }
    
    len = getLength(array);
    printf("The length of array is %d\n",len);

    这样得到的结果始终都是1。因为数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址。在本示例中,函数名array传递到子函数后就完全退化为一个指针,该指针指向的是数组array所在的地址,即数组array第一个元素array[0]所在的地址。也就是说系统只是告诉该函数这个存储空间存有数据,但并没有告诉函数这个数据存储空间有多大。sizeof(array)的结果是指针变量array所占内存的字节数,具体大小与系统有关,一般在32位机器上占4个字节,array[0]是int类型,同样占4个字节,所以结果为1。所以要获得数组的长度最好在数组定义所在的区域内。

    对于上述情形,查阅资料后给出两种解决方案:

    (1)进入子函数后用函数memcpy将数组拷贝出来,函数memcpy所需要的长度由另一个形参传递进来,像这样:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    /**************************************
    *摘自360百科(稍作修改)  By 羽墨
    *将数组内容拷贝到函数内部
    ***************************************/
    void fun(char *p, int len)
    {
    	char *pData;
    	pData = (char*) malloc (len+1);      //申请内存空间
    	memcpy(pData, p, len+1);             //拷贝数组
    	printf("%s\n",pData);
    	//计算数组大小(略)
    	free(pData);                          //释放内存
    	pData = NULL;
    }
    int main(int argc, char *argv[])
    {
    	char str[] = {"This is a string!"};//初始化数组
    	fun(str, 17);
    
        return 0;
    }

    个人觉得没有必要怎么做。如果能够所需的长度作为形参传递到子函数中,显然就不需要在子函数当中另行计算,so,请看另一个方案。

    (2)在子函数外部计算好元素个数后作为形参传递到子函数中进行其他操作。在这里仅给出(直接)插入排序算法的main函数,insert_sort(array,length)函数只需将子函数中用于记录数组元素个数的临时变量length放进子函数的参数列表即可。

    #include <stdio.h>
    
    void print_array(int *arr, int len);
    
    int main(int argc, char *argv[])
    {
    	int array[] = {5,2,4,6,1,3};
    	char str[] = {"This is a string!"};
    	int length = sizeof(array)/sizeof(*array);    //计算数组中的元素个数
    
    	printf("The original");
    	print_array(array, length);
    
    	insert_sort(array,length);                     //插入排序
    
    	printf("The sorted");
    	print_array(array, length);                    //输出排序结果
    
        return 0;
    }
    
    void print_array(int *arr, int len)
    {
    	int i = 0;
    
    	for(i=0;i<len;i++)
    	{
    		printf("%d ", arr[i]);
    	}
    }

    这样一来,对于任意的目标序列都可以直接进行排序而不需要修改任何程序语句。

    展开全文
  • C++ 获取数组长度

    千次阅读 2020-07-14 14:44:59
    C++ 获取数组长度 1 字符串数组 对于字符串数组,使用strlen()函数来获取字符串数组的长度。 char a1[] = "fwegweasdasdwqew"; cout << strlen(a1) << endl; 2 数字数组 例如: int arr[] = { 1,5,9,10...
  • 主要介绍了Go语言获取数组长度的方法,实例分析了len函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • Java中获取数组长度

    万次阅读 2019-05-07 16:16:07
    Java中获取数组长度 方法: 使用数组属性length来获取数组长度 代码: public class ArrayLength { public static void main(String[] args) { String[][] data = new String[2][5]; System.out.println("第...
  • 下面小编就为大家带来篇js 获取json数组里面数组长度实例。小编觉得挺不错的,现在就分享给大家,也给大家做参考。一起跟随小编过来看看吧
  • C/C++ | 求数组长度 | 求字符串数组长度 | 求string类型长度; 数组长度 int arr[] = {1,2,3,4,5,6,7,8,9}; int length = 0; length = sizeof(arr) / sizeof(int); int arr[10]={0,0}; //这样的无法...
  • go语言获取数组长度

    万次阅读 2019-07-24 12:03:21
    go语言获取数组长度 示例 package main import "fmt" func main() { myArray := [3][4]int{{1,2,3,4},{1,2,3,4},{1,2,3,4}} //打印数组长度 fmt.Println(len(myArray)) //打印二维数组长度 fmt....
  • 一般可以直接使用sizeof加数组名获取数组长度,但是封装为函数后,一般使用指针来传递数组值,但在函数体内使用sizeof指针是不对的,此时结果是指针的大小,并不是数组的大小。为了获取指针指向数组的大小,下列函数...
  • C++获取数组长度

    千次阅读 2017-06-01 00:02:51
    C++获取数组长度 、静态数组。 比如 int int_ary[5] ,静态数组在编译的时候就知道了数组长度,这对编译器来说挺好实现的。 用得最多的大概就是sizeof了吧: 1
  • sql获取数组长度

    千次阅读 2015-03-30 13:03:00
    需求:获取字符串数组1,2,3,4的长度,当然也可以是其他分隔符... 获取字符串数组长度 */ if exists (select 1 from sysobjects where id = object_id('Get_StrArrayLength' )) drop Function Get_StrArrayLength...
  • php中如何获取数组长度

    千次阅读 2018-06-20 02:11:00
    php获取数组的长度的方法 、总结 句话总结:count方法和sizeof方法   ... 1、count、sizeof 都可以直接统计数组长度。 2、例如:$arr = Array('0','1','2','3','4'); echo count($a...
  • 获取数组长度, 对象成员数, 字符串数. 2.学习/操作 TBD 3.问题/补充 TBD 4.参考 https://www.cnblogs.com/sunnywindycloudy/p/7382226.html //js获取数组长度,对象成员数、字符串数 ...
  • C语言如何获取数组长度

    千次阅读 2020-07-25 16:56:58
    一个函数的形参相当于一个指针变量, 因为将数组的名作为实参时, 就是将数字的首地址作为实参, 所以在调用函数中输出的sizeof(arr)其实得到的是数据类型对应的字节数,得不到准确的数组长度。 .
  • C语言 获取int数组长度

    万次阅读 2014-08-22 11:01:06
    函数通过参数传入一个数组的指针,如何获取数组长度?如 int InsertSort(int* array,int key) 其中array的长度如何获取? 用过sizeof(array) / sizeof(int),但是结果不对,始终是1
  • js或者vue获取object数组长度

    万次阅读 2017-05-10 10:05:28
    $a=[1,2,3,4];...一般获取数组长度直接$a.length 但是object类型怎么办呢其实也是差不多吧 Object.keys($b).length vue里面页面上有事v-if里面写判断也是一样的v-if="Object.keys($b).length >0
  • 题目:给定一个数组,如何根据数组名求数组的长度? 本题来自于一个同学笔试题,笔试中是...然后对数组排序,下面说一下如何根据数组名获取一个数组长度。 首先我们如果在局部作用域中定义一个数组的话,获取数组中元
  • C语言获取数组长度

    万次阅读 多人点赞 2019-03-09 10:22:34
    1、c语言中,定义数组后可以用sizeof命令获得数组长度(可容纳元素数)。 例如: double a[] = {1,2,3,4}; int length; length=sizeof(a)/sizeof(a[0]); //数组占内存总空间,除以单个元素占内存空间大小 printf...
  • Hive获取array数组长度

    万次阅读 多人点赞 2017-08-24 22:07:18
    场景描述有一个表 user_cook_recommed(用户推荐菜谱),用sqoop从MySQL导入Hive中,表中有一个字段为array形式,导入到hive中变为String类型,如 4321,4532,337(string),现在需要获得这个array的长度解决方法由于...
  • jquery 获取select数组与name数组长度

    千次阅读 2016-05-23 18:53:05
    // $("select[name=style_no]")[0].selectedIndex=(printer_info.style_no); $("#style_no").selectedIndex=(printer_info....jquery 获取select数组与name数组长度可以用size() 或者options.length$(“#name”)[0].opt
  • c++ 获取数组长度

    千次阅读 2018-09-13 11:38:41
    1、对于数组或者传递的数组参数,可以直接使用如下的宏或者类似的函数来获取。 #define getArrayLen(array,len) {len =... 申请时或在所有元素前多出一个单元存放数组的大小。所以只要找到那个单元就能知道数组大小...
  • 数组名称.length ... /* 如何获取数组长度,格式...这将会得到一个int数字,代表数组长度 数组一旦创建,程序运行期间。长度不可改变 */ public class Demo03ArrayLength { public static void main(String[] arg...
  • php获取数组长度函数

    千次阅读 2015-08-06 16:21:09
    获取二维数组长度: count()函数有两参数: count($arr,COUNT_NORMAL); //默认,不检测多维数组 count($arr,COUNT_RECURSIVE); //检测多维数组 例子: $arr = array( 0=>array('name'=>'kong','age'=>'
  • C++ 获取数组长度函数比较

    千次阅读 2019-11-10 17:12:56
    获取数组长度,是经常需要用到的函数。以下做一些常用的比较 1. size()与length(),获取字符串长度时,作用相同的。 2. sizeof()是用来获取对象所占内存的大小。 3. size()是获取字符元素的函数, 用于...
  • php获取数组长度的方法

    万次阅读 2018-11-16 14:37:27
    1.php为我们提供了两函数可以计算数组长度,如count,sizeof都可以直接统计数组长度,如下: &lt;?php $arr = Array('0','1','2','3','4');  echo count($arr); // 输出 5 $arr = array('A','B','C'); ...
  • 如何获取数组长度

    千次阅读 2020-01-15 17:27:20
    ****public static void main (String [ ] args){ //创建两个数组; string[ ] [ ]data = new ...system.out.println(“第一个数组长度”+data.length); system.out.println(“第二个数组长度”+data[ 0 ].l...
  • linux c求一个数组长度

    千次阅读 2014-07-06 17:51:22
    int a[] = {4,5,8,3,2,7,1}; int length = sizeof

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,263,547
精华内容 505,418
关键字:

如何获取一个数组的长度