范围for循环for(const auto& element : container)

"for(const char& ch : s)"是C++11引入的一种新的循环语法,称为范围for循环(range-based for loop)。它用于遍历一个容器或者序列中的元素。

可以代替传统循环for(int i=0;i<s.length();i++),

任何数据类型容器都可以用,

for(const auto& element:container)

引用,本来循环中可修改元素,加个const后禁止修改,只读不可写。

for(auto& element:container)

引用,循环中可修改元素,可读可写。

for(auto element:container)

相当于建个副本,可读不可写。

在循环中可以直接把上面三种写法写入代码,例如下面,auto,element都直接写,container要改,循环中要用元素,就用element。

int arr[] = {1, 2, 3, 4, 5};
for (const auto& element : arr) {  //container要改成容器名称arr
    std::cout << element << " ";
}

也可以都改改
 

int arr[] = {1, 2, 3, 4, 5};
for (const int& ch : arr) {
    cout << ch << " ";
}

最常用的则是:
 

int arr[] = {1, 2, 3, 4, 5};
for (int c:arr) { 
    cout << c << " ";
}

范围for循环相比传统的for循环(for(int i=0;i<s.length();i++))有以下几个优点:

1. 简洁性:范围for循环的语法更加简洁明了,不需要手动处理索引或者迭代器。它可以直接遍历容器或者序列中的元素,使代码更加简洁易读。

2. 安全性:范围for循环使用常量引用来引用容器或者序列中的元素。这意味着在循环体内,无法通过循环变量修改容器或者序列中的元素,从而避免了潜在的错误。

3. 自动推导:范围for循环中的循环变量可以使用auto关键字进行类型推导,无需显式指定类型。这样可以减少代码中的类型冗余,并且方便处理不同类型的容器或序列。

4. 遍历完整性:范围for循环会遍历容器或者序列中的所有元素,无需手动控制循环条件。它会自动根据容器或者序列的大小进行循环,避免了遗漏或者越界的问题。

总的来说,范围for循环在代码简洁性、安全性和遍历完整性方面具有优势,可以提高代码的可读性和可维护性。然而,在某些情况下,传统的for循环可能更适合处理复杂的逻辑或者需要对索引进行精确控制的情况。选择使用哪种循环取决于具体的需求和代码的复杂度。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值