试图让array.length在for循环中工作

时间:2013-10-19 12:20:35

标签: c++ arrays loops

有人可以帮我弄清楚为什么这不起作用。

int main() {
int A[100];

    for(int i=0; i<A.length; i++)
    {

    }

    return 0;
}

这是我的错误

[Error] request for member 'length' in 'A', which is of non-class type 'int [100]'

2 个答案:

答案 0 :(得分:3)

C样式数组没有类似length属性的东西。如果您坚持使用C样式数组,请考虑使用std::array及其size()成员或sizeof(A)/sizeof(int)

答案 1 :(得分:2)

普通数组没有任何成员。如果您需要知道它们的长度,您必须要跟踪它,或者您可以编写一个简单的函数模板来获取它:

template<class T, size_t N>
constexpr size_t size(const T (&)[N]) { return N; }

然后

int A[100];
....
for(int i=0; i < size(A); i++) { ... }

使用std::array<int, 100>要容易得多。这有尺寸方法。