有没有办法找出一个数组有多少个值?检测是否已经到达数组的末尾也可以工作。


当前回答

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