有没有办法找出一个数组有多少个值?检测是否已经到达数组的末尾也可以工作。
当前回答
vector有一个size()方法,该方法返回vector中元素的数量。
(是的,这是半开玩笑的回答)
其他回答
有没有办法找出一个数组有多少个值?
Yes!
尝试sizeof(数组)/ sizeof(阵列[0])
检测是否已经到达数组的末尾也可以工作。
我看不到任何方法,除非你的数组是一个字符数组(即字符串)。
注:在c++中总是使用std::vector。有几个内置函数和一个扩展功能。
你可以简单地使用这段代码:
#include <iostream>
#include <string>
#include <array>
using namespace std;
int main()
{
array<int,3> values;
cout << "No. elements in valuea array: " << values.size() << " elements." << endl;
cout << "sizeof(myints): " << sizeof(values) << endl;
}
这里是参考资料:http://www.cplusplus.com/reference/array/array/size/
我认为这是可行的:
for(int i=0;array[i];i++)
{
//do_something
}
vector有一个size()方法,该方法返回vector中元素的数量。
(是的,这是半开玩笑的回答)
我在这里提供了一个棘手的解决方案:
你总是可以在第一个元素中存储长度:
// malloc/new
arr[0] = length;
arr++;
// do anything.
int len = *(arr-1);
free(--arr);
代价是在调用free时必须—arr