C++ 如何计算未完全填充的数组中的整数

C++ 如何计算未完全填充的数组中的整数,c++,arrays,for-loop,integer,C++,Arrays,For Loop,Integer,我有一个固定大小(10)的int型数组,它没有完全填满 我想计算数组中有多少个整数,这样我就知道如果我想向数组中添加一个整数,数组的索引值是什么。(这样我就不会替换另一个值) //定义数组 int计数器=0; 整数分数[10]={92,87,94,99,96}; //计算分数数组中有多少个元素 对于(int i=0;i P>例如,你可以认为包含0(或-1)的数组中的元素是未填充元素。 在任何情况下,数组的每个元素都应包含一个实际值或0 此初始化 int scores[10] = {92,87,9

我有一个固定大小(10)的int型数组,它没有完全填满

我想计算数组中有多少个整数,这样我就知道如果我想向数组中添加一个整数,数组的索引值是什么。(这样我就不会替换另一个值)

//定义数组
int计数器=0;
整数分数[10]={92,87,94,99,96};
//计算分数数组中有多少个元素
对于(int i=0;i<10;i++)
{
如果(分数[i]==1)
{
计数器++;
}
}
当我输出变量计数器时,我得到值“0”

我看了几个堆栈溢出的帖子,我似乎找到了任何可以帮助我找到解决方案的东西!任何帮助或建议都会大有帮助

谢谢

编辑: 我能够得到我的问题的答案,但是我很后悔发帖,因为我现在有2个声誉点!你们太苛刻了! 这是正确的答案

//Define Array
    int counter=0;
    int scores[10] = {92,87,94,99,96};

    //Count how many elements are in the score array
    for (int i = 0; i < 10; i++)
    {
        if (scores[i] != 0)
        {
            counter++;
        }
    }
//定义数组
int计数器=0;
整数分数[10]={92,87,94,99,96};
//计算分数数组中有多少个元素
对于(int i=0;i<10;i++)
{
如果(分数[i]!=0)
{
计数器++;
}
}

你不必做这些。
只要<强>增加计数器< /强>每次在数组中存储一个数字,计数器本身将告诉你需要存储下一个数的索引。例如,

> P>例如,你可以认为包含0(或-1)的数组中的元素是未填充元素。 在任何情况下,数组的每个元素都应包含一个实际值或0

此初始化

int scores[10] = {92,87,94,99,96};
相当于

int scores[10] = {92,87,94,99,96,0,0,0,0,0};
所以这个循环看起来像

for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
    if ( scores[i] != 0)
    {
        counter++;
    }
}
for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
    if ( scores[i] != -1)
    {
        counter++;
    }
}
这个循环看起来像

for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
    if ( scores[i] != 0)
    {
        counter++;
    }
}
for ( size_t i = 0; i < sizeof( scores ) / sizeof( *scores ); i++ )
{
    if ( scores[i] != -1)
    {
        counter++;
    }
}
for(大小i=0;i
使用
std::vector
,然后使用
size
方法:

std::vector v={1,2,4,8};
cout << "Vector size is: " << v.size() << "\n"
std::vector v={1,2,4,8};

难道显示的分数值中没有一个是
1
,那么您希望得到什么?不,它会检查该值是否等于
1
,与
==1
的含义完全相同。@humanid16524879543每个索引处都有一个值
int
没有“无值”属性。它应该是
std::vector
not
std:vecton
,这是一个打字错误。太棒了,我会接受答案。我唯一的问题是你为什么把“i”初始化为尺码?会说int i not work吗?@humanid165248795443 sizeof运算符返回的值类型是size\t,它是无符号类型。编译器可能会发出警告,指出您正在比较有符号类型(I)的对象与无符号类型的对象(由带有sizeof的表达式返回)可能会显示push_back()/emplace_back(),以显示可以添加项的操作。