美文网首页
modern c++(3)-基于范围的for循环

modern c++(3)-基于范围的for循环

作者: RC_HT | 来源:发表于2019-08-09 20:47 被阅读0次

基于范围的for循环(range-based for)

循环体是程序中最基本的控制语句之一,就是这么一个小的语法,却经常让在写循环代码的我们觉得有些心烦,要么觉得有点重复劳动,要么类型太长又得跳来跳去复制类型定义。
于是C++11引入了基于范围的for循环语法糖:

for (declaration : expression)
    statement

于是现在遍历一个序列或者容器可以这样写(auto也是C++11的新语法,表示自动类型推导):

//将序列或容器中的元素都加上1
for (auto &r : v)
    r += 1;

这等价于:

for (auto beg = v.begin(), end = v.end(); beg != end; ++beg) {
    auto &r = *beg;
    r += 1;
}

优点

  • 语义更清晰
  • 写法更安全,不容易出低级错误
  • 效率更高
    总结起来这糖真甜。

相关文章

网友评论

      本文标题:modern c++(3)-基于范围的for循环

      本文链接:https://www.haomeiwen.com/subject/owrkjctx.html