如何查找数组中存在的元素数量
How to find number of elements present in an array?
我有一个数组变量,例如:-
int a[10];
假设我添加了4个元素,比如1,2,3,4
,从a[0]
到a[3]
。现在我如何发现有多少元素存在于数组变量a
,其最大大小是10
?
我获取数组中存在的元素数的方法,假设用户输入大于等于0:-
#include<iostream>
using namespace std;
#define SIZE 10
int main(){
int *a = (int*)malloc(sizeof(int)*SIZE);
int iCount=0;
int iNumberOfElements,iElements;
cout<<"nEnter the number of elements to be entered:";
cin>>iNumberOfElements;
cout<<"nEnter the elements(Please enter elements greater than or equal to zero):n";
for (int jIndex = 0; jIndex < iNumberOfElements; jIndex++){
cin>>iElements;
while(iElements<0){
cout<<"nPlease enter the element greater than or equal to Zero.nRe-enter:n";
cin>>iElements;
}
a[jIndex] = iElements;
}
for(int iIndex=0;iIndex<SIZE;iIndex++){
if(a[iIndex] >= 0){ //I am checking in this way assuming that user will give input >= 0
iCount++;
}
}
cout<<"nThe total number of element present in the array is:"<<iCount<<endl;
return 0;
}
你必须自己构建这个约定。
例如,您可以将整个数组初始化为某个表示"未使用"的神奇常数,或者您可以通过单独的变量跟踪长度。
无论哪种方式,框架都不会帮助你,没有办法。无论您是否设置,该数组都有10个元素。
By
int a[10];
您已经为10个不确定值的int分配了空间(如果数组具有静态存储持续时间,则为0)。当你说
我已经添加了4个元素,从a[0]到a[3],分别是1,2,3,4
你的意思可能是你给元素赋值了。所以,它们不会以任何其他方式被标记。您可以将所有元素设置为-1
,以便您可以确定是否已将其分配给它们,但要小心-您无法知道数组的结束位置!(这只能在c++中通过使用函数模板并将数组作为引用传递给数组来实现。)
不使用计数器或使用默认值设置表,如果使用指针中的表地址逐步添加或删除元素,然后计算两者之间的差值,则可以做到这一点:
int a[10],*ptr=a;
*ptr=1;
*++ptr=2;
*++ptr=3;
*++ptr=4;
printf("start addr : %pncurrent addr %pn",
a,ptr);
printf("present in a : %d rest : %dn",ptr-a+1,&a[9]-ptr);
您可以定义一个静态或易失性变量来跟踪数组中存在或初始化的数字数量。在下面的程序中,j跟踪数组a
中的数字int main()
{
int a[10];
static int j=0;
do{
scanf("%d",&a[i]);
if(a[i]>=0)
j++;
}while(a[i++]>=0);
}
可以通过一个简单的循环来计算数组中的元素个数
int i=0,count=0;
for(i=0;i<10;i++)
{
if(a[i]!='/0')
{
count++;
}
}
这里i是一个整型变量,count用于计算元素的个数。假设数组的最大大小为10,则使用值'10'。如果在一个大小为10的数组中只输入4个元素,这段代码将返回计数4。
相关文章:
- 查找第一个数组中不存在的元素
- 检查 TinyXML 中的元素是否存在
- set::find 查找不存在的元素
- C++ 查找字符串中存在的元素向量
- 如何检查映射值中是否存在元素
- 如果键不存在,使用 [] 运算符访问 STL Map 元素会添加新元素
- 是否存在一个范围::视图::group_by对应项,它将所有元素都考虑在内,而不是只考虑连续的元素
- 查找数组中是否存在C++元素
- 我的选择排序代码是否存在导致它跳过数组中的元素的问题?
- 有效地检查映射 c++ 中是否存在元素
- 使用提升属性树检查 xml 文件中是否存在元素
- 检查动态分配的数组C++中是否存在元素
- 正在检查堆栈中是否存在元素
- 迭代和递归地查找向量中是否存在元素
- 检查 2D 数组中是否存在元素,如果为 true,则返回一些内容
- C++检查数组中是否存在元素
- 使用0来显示不存在元素的集合的子集
- 获取受不存在元素限制的QSet子集
- 是否有一种STL算法可以根据一定的公差来查找容器中是否存在元素
- 检查C++映射中是否存在元素