C++11 基于范围的循环

一 语法
  • C++11增加了基于范围的循环,语法如下:
attr(optional) for ( range_declaration : range_expression ) 
    loop_statement (until C++20)
attr(optional) for ( init-statement(optional)range_declaration : range_expression )
    loop_statement (since C++20)
二 举例
  • 应用于容器
{
    // 容器
    cout << "vc: ";
    std::vector<int> vc {1,2,3};
    for (auto i : vc) {
      cout << i << " ";
    }
    cout << endl;
}
  • 结果
vc: 1 2 3
  • 允许操作初值列和寻常的、大小已知的C-style array
{
  // C-Style 数组
  cout << "sz: ";
  int sz[] = {1, 2, 3};
  for (auto i : sz) {
    cout << i << " ";
  }
  cout << endl;
}
{
  // initialize_list
  cout << "list: ";
  for (auto i : {1, 2, 3}) {
    cout << i << " ";
  }
  cout << endl;
}
  • 结果
sz: 1 2 3
list: 1 2 3
三 相关算法
  • for_each
bool even(int n){
  if (n%2 ==0) {
    cout << n << " is even " << endl;
    return true;
  }
  return false;
}

{
  std::vector<int> vc{1, 2, 3};
  for_each(vc.begin(), vc.end(), even);
  cout << endl;
}
  • 结果
2 is even
  • for_each_n (C++17)
// for_each_n (C++17)
{
  std::vector<int> vc{1, 2, 3};
  for_each_n(vc.begin(), 2, even);
  cout << endl;
}
  • 结果(待测)
2 is even
四 参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值