我是编程新手,我想知道如何获取数组的大小,即获取数组中有多少元素的大小。例如,如果我声明了一个大小为10的数组,但只在数组中输入了3个元素,那么我如何确定这个数组的大小呢?如果我不知道我最初放了多少个元素。
发布于 2011-09-02 23:00:05
如果你声明一个数组,例如int array[10],那么它的大小总是10 * sizeof(int)。没有办法知道你访问了它多少次;你需要手动跟踪它。
您应该考虑使用容器类,例如std::vector
std::vector<int> vec;
vec.push_back(5);
vec.push_back(10);
vec.push_back(42);
std::cout << vec.size() << "\n"; // Prints "3"发布于 2011-09-02 23:03:15
如果您声明一个包含10个元素的旧式数组,例如std::string words[10],则数组的大小始终为10个字符串。即使有了新的样式(std::array),它也是固定大小的。
您可能正在寻找一个std::vector<>。它没有固定的大小,但有一个.size()方法。因此,如果向其添加三个元素,则它将具有.size()==3
发布于 2011-09-02 23:06:01
要获得数组大小(以元素数表示),请使用sizeof(a)/sizeof(a)
参见下面的示例程序。我使用的是C语言,但它应该可以很好地继承到C++
#include <stdio.h>
int main(){
int a[10];
printf("%d elements\n",sizeof(a)/sizeof(a[0]));
return 0;
}
//output: 10 elementshttps://stackoverflow.com/questions/7285329
复制相似问题