通八洲科技

c++ for循环有哪些用法 c++范围for循环技巧【必看】

日期:2025-12-27 00:00 / 作者:穿越時空
传统for循环控制力强、结构清晰,由初始化、条件判断、迭代三部分用分号分隔;支持反向、步长非1遍历及多变量操作;现代C++推荐auto推导迭代器类型,且erase后需用其返回值更新迭代器。

传统for循环:控制力强,适合索引操作

传统for循环结构清晰,由初始化、条件判断、迭代三部分组成,用分号分隔:for (int i = 0; i 。它最适用于需要下标参与逻辑的场景,比如:

注意:循环变量作用域限于for语句内;若需在循环后继续使用,应在外部声明。

范围for循环:简洁安全,专注元素本身

C++11起支持的range-based for语法为 for (auto& x : container),自动调用 begin()end(),省去索引管理。核心技巧包括:

不支持纯指针数组(如 int* p = new int[5]),也不适用于运行时才确定范围的表达式(如函数返回临时容器时,C++23前需先赋值给变量再遍历)。

迭代器for循环:通用性强,适配所有STL容器

std::liststd::map 等不支持随机访问的容器,必须用迭代器方式:

注意:避免在循环中 erase 迭代器后仍 ++it,应使用 erase 返回的新迭代器。

实用细节与避坑提醒

几种常见但易错的写法需留意:

选哪种,关键看需求:要下标就用传统for,要干净遍历优先范围for,要最大兼容性就用迭代器for。