在C ++中查找数组的大小

时间:2014-11-08 05:48:13

标签: c++ arrays size sizeof

通常情况下,我会使用

找到双数组的大小
int size = sizeof(array_name)/sizeof(double)

但是,我正在使用名为"等级"的双数组。作为名为" Grades"

的班级的成员
class Grades{
    private:
        double grades[1024];

    public: Grades(string gradeList);
            Grades();

            int getNumGrades();
            string toString();
};

稍后在构造函数中填充double数组。但是,当我做的时候

cout << "size = " << (sizeof(grades)/sizeof(double)) << endl;

它总是给我1024.这是在它填充了一些随机值之后的构造函数的末尾。我用5个值填充它。如何才能返回填充元素的数量?

3 个答案:

答案 0 :(得分:2)

我认为您应该有一个名为elemInArray的其他成员,并且可以通过这种方式实施。

class Grades{
    private:
        double grades[1024];
        unsigned int elemInArray;   // Note this

    public: Grades(string gradeList);
            Grades();

            int getNumGrades();
            string toString();
};

无论何时插入元素或从该数组中删除元素,都可以递增和递减elemInArray以跟踪数组中元素的数量。

否则使用STL容器(http://en.cppreference.com/w/cpp/container)。

答案 1 :(得分:1)

它将始终返回创建数组时指定的相同值。你必须保持一个单独的变量(让我们说&#34;计算&#34;)来跟踪数组中有多少元素。

答案 2 :(得分:-3)

cout << "size = " << grades.size()

请访问this link