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