通常情况下,我会使用
找到双数组的大小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个值填充它。如何才能返回填充元素的数量?
答案 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