确定数组的大小

时间:2012-03-18 16:20:41

标签: c++ arrays size

显示数组中有多少个的适当函数是什么?

int a[10];
a[0] = 1;
a[1] = 3;

所以我想要一些显示size of a = 2的内容。

4 个答案:

答案 0 :(得分:3)

使用原始数组无法做到这一点。

请考虑使用容器类,例如std::vector

std::vector<int> a;
a.push_back(1);
a.push_back(3);

std::cout << a.size() << "\n";  // Displays "2"

答案 1 :(得分:1)

听起来你需要一个可动态调整大小的数组:

std::vector<int> a;

a.push_back(1);
a.push_back(3);

std::cout << a.size(); // 2

答案 2 :(得分:1)

这个数组有10个元素。你碰巧分配了其中两个,但这并没有改变areay的大小。如果您希望simething跟踪您设置的元素,请使用std::vector<int>push_back()

std::vector<int> array;
array.push_back(1);
array.push_back(3);
int size = array.size();

答案 3 :(得分:0)

油查尔斯沃思似乎是对的。这是正确的原因是当编译时,为该数组预留(分配)一定量的内存,无论它是否包含数据。因此,使用sizeof(a)之类的命令将始终产生相同的结果。它将返回为您的阵列分配的字节数。在这种情况下,数组是40个字节,这是有意义的,因为通常整数是4个字节长*数组的长度(10)= 40。

这可能因PC而异,但至少,这是我在一段时间内在教程中读到的内容,每个变量类型的分配大小似乎在PC到PC(或OS到OS)之间有所不同。

它没什么帮助,我知道,但现在你至少知道为什么你不能用原始数组来做。