【发布时间】:2013-04-27 11:06:44
【问题描述】:
我正在尝试遍历数组并在 C++ 中获取元素。这是我的代码:
int result;
int index_array [] = {11,12,13,14,15,16,17,18,19,20};
for (int count =0; count < index_array.length() ; count++){
if(count%2 == 0){
cout << "Elements at the even index are " << index_array[count] << endl;
}
}
如果我将for 循环更改为:
for (int count =0; count < 10 ; count++){
没有错误,因为我的数组只包含 10 个项目。但是如果我使用.length() 方法,就会出现一个错误,即表达式必须具有类类型。我不知道它是什么,就像它在 Eclipse 中一样,其中包含更详细的错误描述。谁能告诉我怎么了?
更新答案:
for (int count =0; count < sizeof(index_array)/sizeof(index_array [0]) ; count++){
if((count+1)%2 == 0){
cout << "Elements at the even index are " << index_array[count] << endl;
}
}
我不明白为什么我的帖子被否决了。我确实清楚地解释了我的问题,我发布了我的解决方案并更新了答案。因此,对于那些投反对票的人,请删除您的反对票。谢谢。
【问题讨论】:
-
数组不是 C++ 中的“对象”,因此没有关联的方法。错误“表达式必须具有类类型”表示:您只能调用类(或结构)上的方法。
-
如果你确定你想要一个固定长度的数组,你可以把
index_array.length()改成sizeof( index_array ) / sizeof( index_array[0] ) -
对不起?你什么意思?能给我举个例子吗?
-
@Rauryn: stackoverflow.com/questions/37538/…
-
@Rauryn 你来自一种一切都是对象的语言。在 C++ 等低级语言中,情况并非如此。数组只是内存中的一个空间。它没有任何方法,甚至不知道它有多大。编译器会这样做(因为在这种情况下它是固定长度的),所以
sizeof可以告诉你。