您现在的位置是:首页 >其他 >【C/C++】带你快速掌握 使用—增强for(范围for循环)网站首页其他

【C/C++】带你快速掌握 使用—增强for(范围for循环)

天喜Studio 2024-09-28 00:01:02
简介【C/C++】带你快速掌握 使用—增强for(范围for循环)

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>?<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
?c++系列专栏:C/C++零基础到精通 ?

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述

c语言内容?:

专栏:c语言之路重点知识整合

【c语言】全部知识点总结


一、增强for概念

通常在我们遍历数组的时候,常用的写法是:

int main()
{
	char arr[7] = "TianXi";
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) 
	{
		cout << arr[i] << " ";  
	}cout << endl;
}

在C++新标准中,简化后的写法为:

	type iterable[n];
	for(type val:iterable) 	//type val = arr[i]
	{
		 // do something with val
	}

这种for循环就被称为增强for,也叫范围for循环

增强for循环中,我们不需要再通过计算数组长度遍历数组,增强for循环会自动根据数组长度将数组中的每一个数据赋值给同类型的val,我们只需要输出val就遍历了数组

iterable不止可以为数组,还可以是迭代的对象(比如支持begin、end操作的容器、string类型等)

在这里插入图片描述

二、增强for用法

上面遍历数组的代码通过简化就可以写成这样:

	for (char v : arr)
	{
		cout << v << "  ";
	}cout << endl;

char类型的v变量存储了arr数组中的每一位

自动根据数组长度遍历数组

输出结果为:

在这里插入图片描述

容器类型、数组类型

增强for循环可以遍历支持迭代器的容器类型数组类型,例如std::vectorstd::liststd::arrayint[]

指针类型既不是容器类型又不是数组类型,不能使用增强范围for,可以使用传统的for循环

	char* p = new char[7] {"TianXi"};
	for (char v : p)
	{
		cout << v << "  ";
	}cout << endl;

这个例子中p 是一个 char 类型指针,指向一个拥有7个元素的字符数组并且进行了初始化

由于 p 是一个指针变量,而非容器类型,无法直接使用范围for循环进行遍历操作

在这里插入图片描述

如果要遍历字符串,不用char指针指向char数组,直接使用string字符串:
(string字符串相关知识点:【C/C++】基础知识之string字符串)

	char* p = new char[7] {"TianXi"};
	//for(char v:p)     无法遍历
	string str = "TianXi";
	for (char v : str)
	{
		cout << v << "  ";
	}cout << endl;

三、总结

  • 增强for循环可以遍历支持迭代器容器类型或数组类型,不支持指针类型

使用增强for循环能够简化代码编写阅读,并且可以避免因手动控制迭代器而带来的错误。

在需要进行下标访问修改元素等操作时还是传统for循环更方便,不适合使用增强for循环

因此,使用哪种for循环,如何使用for循环,需要根据具体情况选择使用


在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。