在C ++ 11中,如果编译器支持,则可以。这称为基于范围的。
std::vector<int> v;// fill vectorfor (const int& i : v) { std::cout << i << "n"; }它适用于C样式数组以及具有函数
begin()并
end()返回迭代器的任何类型。例:
class test { int* array; size_t size;public: test(size_t n) : array(new int[n]), size(n) { for (int i = 0; i < n; i++) { array[i] = i; } } ~test() { delete [] array; } int* begin() { return array; } int* end() { return array + size; }};int main(){ test T(10); for (auto& i : T) { std::cout << i; // prints 0123456789 }}


