c++中怎么获取数组中元素的个数

如题所述

C++中数组可分为堆区的数组和栈区的数组,对于两种数组C++都没有函数可以直接获取数组的元素的个数。

一、堆区的数组

堆区的数组是自己申请的,比如用new申请空间:

int* arr = new int[10];

堆区的数组不能计算出包含元素个数。

二、栈区的数组

栈区的数组是系统自动分配的,如:

[cpp] view plain copy

    int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };  


    栈区的数组可以通过以下两种方法得出元素的个数:

    (1)

    [cpp] view plain copy

    int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };  

    auto diff = sizeof(arr)/sizeof(int);  


    (2)

    这种方法需要所用编译器支持C++11,14

    [cpp] view plain copy

    int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };  

    int *pbeg = begin(arr);  

    int *pend = end(arr);  

    auto length = pend - pbeg;//数组元素个数  

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-23
_countof()被楼上吃了
第2个回答  2019-07-21
C++中没有现成的获取数组元素个数的方法,只有自己写。
int count = sizeof(array) / sizeof(array[0]);

1、对于数组的查询,其实就是对数组中数据做一个遍历。最常用的方法就是通过循环对数组中的元素逐个取值,并与参考值(要查询的值)做比对,并处理结果。
下面是一个简单的对一维数组进行查询的样例。
函数功能:对输入的数组元素进行查询,打印符合查询值的元素位置,并返回查询到的元素总数。
函数名:array_query函数声明: int array_query(int *a, int n, int v);
参数介绍:
a: 输入的数组,类型为整型指针,表示整型数组。可以根据实际需要进行调整。
n:数组中现有元素的个数。
v:要查询的元素值。返回值:
整型,返回查询到的元素个数。如果出错返回-1。
2、实现代码:

int array_query(int *a, int n, int v)
{
int i,ret;

if(a == NULL || n <= 0) return -1; //出错处理
for(ret = i = 0; i < n; i ++)
{
if(a[i] == n)
{
printf("%d\n", i);//找到元素,打印下标,并累计统计值
ret ++;
}
}

return ret;//返回总数。
}

c++中怎么获取数组中元素的个数
一、堆区的数组 堆区的数组是自己申请的,比如用new申请空间:int* arr = new int[10];堆区的数组不能计算出包含元素个数。二、栈区的数组 栈区的数组是系统自动分配的,如:[cpp] view plain copy int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };栈区的数组可以通过以下两种方法得出元...

C++怎么获取数组元素个数
如果你使用的是STL中的vector,即动态数组的话,直接调用它的一个方法就可以求出存入数组中的元素个数了。

C++ 如何获得一个数组中 有多少个数
=== 一个数组x[]中 有多少个元素:int x[]={1,2,3,4,5,6,7,8,9,10};n = sizeof(x) \/ sizeof(int);=== 控制台输入 2 5 6 7回车 输出结果4(输入了4个数) ,用下法:include <stdio.h> int main(){ int x[]={1,2,3,4,5,6,7,8,9,10};int i, n,c;n = si...

...怎么能控制不无限输出,并统计输入数组元素的个数。
可以用strlen来计算输入数组元素的个数 char a[20];int i;i=strlen(a);可得i=0 若char a[20]=“abcde”;i=5 输出的时候 for(j=0;j

如何求数组中相同元素的个数,C++版。。。
printf("请输入元素个数:\\n");scanf("%d",&n);printf("请输入各个元素:\\n");for(i=1;i<=n;i++){ scanf("%d",&a[i]);} qsort1(1,n);s=1;a[0]=-1;a[n+1]=-1;for(i=1;i<=n+1;i++){ if(a[i]!=a[i-1]){ if(s>maxn) maxn=s;s=1;} else s++;} p...

怎样用C++输出数组元素的值?
按照题目的要求我们可以直接把数据存到数组之中,然后倒序输出数组元素即可,不需要对数据进行改变。正确代码如下:include <stdio.h> define N 2000 int main () { int i=0;int n=0,a[N];scanf("%d",&n);for(i;i<n;i++){ scanf("%d",&a[i]);} for(i=n-1;i>=0;i--){ pr...

C++中如何获取数组第一行的第四个元素?
①C\/C++ 的数组是行优先,也就是一行一行的来。②a[3][6]有3行6列。a[1][3] 是第二行的第4列,位置是第一行的6个元素+第二行的第4个元素,就是第10个元素了。③要算出a[N1][N2][N3]...[Nn-1][Nn] 数组在a[b1][b2][b3]...[bn-1][bn]是第几个数,有公式:N1*b1...

C++ 怎么输出一个栈中的所有元素?
如果是用数组,数组a,int index,可以用:push(num)函数就是: a[index] = num; index ++;pop()就是: index --; return a[index]。语言特点:在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。在面向对象的程序设计中,将数据和对该...

C++如何返回数组参数的元素个数
这就是求一个数组的元素个数吧,比如你一个整形的数组 int numberOfArray(int Array[]){ int number = sizeof(Array )\/ sizeof(int );return number;} 如果是其他数据类型的,把int改成相应的类型应该就行了

C++怎么读取文件中数组成员的个数
int i; int b[]=new int[100]; FILE *fp=fopen(filename,"r"); for(i=0;fread(&b[i],sizeof(int a[]),1,fp)!=0,i++) \/\/一个一个读取并用i记录读取个数,直到文件读完。 i即为读取文件中 数组a[] 的个数。 解释一下:开始定义了个数组b 用来存放每次读取的内容,

相似回答