Hippogriff's Blog
首页
C++
  • 算法
  • 数据结构
  • Leetcode
  • 操作系统
  • 计算机网络
  • MySQL
  • 深度学习
  • 网络
收藏
  • 醍醐灌顶
  • 句读
个人书单 (opens new window)
GitHub (opens new window)

Absm

什么也不会
首页
C++
  • 算法
  • 数据结构
  • Leetcode
  • 操作系统
  • 计算机网络
  • MySQL
  • 深度学习
  • 网络
收藏
  • 醍醐灌顶
  • 句读
个人书单 (opens new window)
GitHub (opens new window)
  • 【C++&Leetcode】自定义排序的方法与辨析
  • 关于优先队列priority_queue
  • 关于C++ STL size的坑
  • C++ 智能指针
  • C++ const
  • C++&STL中String常见函数用法
  • C++11的decltype
  • C++11右值引用【来自IBM文档】
  • C++11中循环auto的引用
  • C++中的lambda表达式
  • C风格字符串库函数总结
  • C与C++风格的字符串辨析
  • CMake基础命令
  • C++
Absm
2021-03-14

C++11中循环auto的引用

# C++11中一个使用for+auto时容易发生的bug

一个小坑,那就是忘记在for循环中使用auto时加引用。

例如:

for(auto num : nums){
    // do some thing
}
1
2
3

可以看到,num并非nums中元素的引用,这就会导致一个问题:如果循环中有什么改变num的操作,是不会反映在nums里面的。

所以会导致循环后nums没变的现象,为了防止这种隐形bug的发生,以后使用这种循环时尽量都加上引用,即:

for(auto& num : nums){
    // do some thing
}
1
2
3
编辑 (opens new window)
上次更新: 2021/06/03, 13:03:33
C++11右值引用【来自IBM文档】
C++中的lambda表达式

← C++11右值引用【来自IBM文档】 C++中的lambda表达式→

最近更新
01
少年游·长安古道马迟迟
11-30
02
CMake基础命令
11-08
03
由浅入深剖析OAuth2.0的授权码模式
07-07
更多文章>
Theme by Vdoing | Copyright © 2019-2023 Murray Li | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×