C ++中增强的FOR循环

我正在从Java切换到C ,并且想知道C 是否包含我在Java中使用的增强的for循环,例如:

int[] numbers = {1,2,3,4,5,6,7,8,9,10};

for (int item : numbers) {

System.out.println("Count is: " + item);

}

在C ++中是否可能有相同的“快捷方式”?

回答:

在C ++ 11中,如果编译器支持,则可以。这称为基于范围的。

std::vector<int> v;

// fill vector

for (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

}

}

以上是 C ++中增强的FOR循环 的全部内容, 来源链接: utcz.com/qa/426019.html

回到顶部