在c ++中是否有任何内置方法来查找数组的长度?

kas*_*jay 1 c++ arrays

像java中的array.length是否在c ++中有任何内置方法来查找数组的大小?

我知道长度().但它只适用于字符串......

我试过这个......

int a[10];
a[0]=1;
a[1]=2;
print(sizeof(a)/size(a[0]))
Run Code Online (Sandbox Code Playgroud)

但它输出为10但是有一种方法只能输出2

Spo*_*ook 11

如果您正在使用C++,请不要使用数组,std::vector而是使用(特别是如果您需要当前持有的项目数,而不是容器的容量).然后你可以写:

std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
printf("%d\n", vec.size());
Run Code Online (Sandbox Code Playgroud)


Tri*_*dle 6

int a[10];
Run Code Online (Sandbox Code Playgroud)

声明一个10个整数的数组; 当然,你只是初始化前两个,但其他8个仍在那里,他们只是(可能)充满了垃圾.

要做你想做的事,你应该用一个std::vector代替.然后你可以这样做:

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

std::cout << a.size() << std::endl; // prints 2
Run Code Online (Sandbox Code Playgroud)