【C++】范围for (C++11)

语法

C++ 98中如果要遍历一个数组,可以按照以下的方式:

void Testfor()
{
	int array[] = { 1,2,3,4,5 };
	for (int i = 0; i < sizeof(array) / sizeof(array[0]); ++i)
	{
		array[i] *= 2;
	}
	for (int* p = array; p < array + sizeof(array) / sizeof(array[0]); ++p)
	{
		cout << *p << endl;
	}
}

C++ 11使用范围for:

void Testfor2()
{
	int array[] = { 1,2,3,4,5 };
	for (auto& e : array)
	{
		e *= 2;
	}
	for (auto e : array)
	{
		cout << e << endl;
	}
}

使用条件

  1. for 循环迭代的范围必须是确定的
    对于数组而言,就是数组中第一个元素和最后一个元素的范围;
    对于类而言,应该提供begin和end的方法,begin和end就是for循环迭代的范围。

在数组传参时,数组会降维成指针。此时不能使用范围for
【C++】范围for (C++11)

  1. 迭代的对象要实现++和==的操作。
上一篇:PAT刷题之旅 1151-LCA in a Binary Tree-甲级


下一篇:微信小程序把玩(二十四)toast组件