范围基for循环(range-based for loop)

"范围基for循环"(range-based for loop)是 C++11 引入的一种新语法,用于遍历容器(如数组、向量、列表等)和范围。这种循环使得对容器内所有元素的访问更加直接和清晰,减少了编码错误的可能性,也使代码更易于阅读和维护。

语法

范围基for循环的基本语法如下:

for (declaration : range) {
    // 循环体
}
  • declaration:声明一个变量,这个变量会逐一绑定到范围内的每个元素。变量的类型应与容器中元素的类型兼容,可以是值类型、引用类型或者使用 auto 关键字自动推导。
  • range:表示要遍历的容器或数组。

示例

假设我们有一个 std::vector<int>

std::vector<int> numbers = {1, 2, 3, 4, 5};

使用范围基for循环遍历 numbers 并打印每个元素:

for (int number : numbers) {
    std::cout << number << " ";
}

使用 auto 关键字可以自动推导元素类型,这在容器元素类型复杂或长时特别有用,

如果你想在遍历时修改容器的元素,应使用引用来声明循环变量:

for (auto& number : numbers) {
    std::cout << number << " ";
}

对于遍历map:

在 C++ 中,如果你想遍历一个如 std::map 这样的关联容器,你需要使用正确的迭代器操作。关联容器的迭代器不支持 < 运算符来比较两个迭代器,因为它们通常不是随机访问迭代器(例如 std::vector 的迭代器)。相反,关联容器如 std::map 使用的是双向迭代器。

对于 std::map 或其他标准库提供的关联容器,正确的迭代器循环应该使用 != 来比较迭代器,如下:

for (auto it = map.begin(); it != map.end(); ++it) {
    // 访问 it->first (键) 和 it->second (值)
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值