【发布时间】:2015-03-07 23:16:34
【问题描述】:
对于向量数组,是否有基于范围的 for 循环的替代方法?我注意到 c++98 不允许基于范围的 for 循环。下面是一些使用基于范围的 for 循环遍历向量数组的示例代码:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vecArray1 (3,20);
for (int v: vecArray1) {
cout << "ArrayValue:" << v << endl;
}
return 0;
}
现在这是我尝试过的另一种方法,但不起作用:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vecArray1 (3,20);
for (int i=0; i<sizeof(vecArray1); ++i) {
cout << "ArrayValue:" << vecArray1[i] << endl;
}
return 0;
}
它输出 10 个元素,而不是上面向量数组定义的 3 个元素。在 c++98 中是否有基于范围的 for 循环的替代方案?
【问题讨论】:
-
在您的第二个代码-sn-p 中,您需要
vecArray.size()。 -
如果你愿意考虑
boost,有这个:boost.org/doc/libs/1_57_0/doc/html/foreach.html
标签: c++ arrays for-loop vector