想要拷贝元素:for(auto x:range)
想要修改元素 : for(auto &&x:range)
当需要修改range中元素,用for(auto& x:range)
当vector返回临时对象,使用auto&会编译错误,临时对象不能绑在non-const l-value reference (左值引用)需使用auto&&,初始化右值时也可捕获
想要只读元素:for(const auto& x:range)
来源:https://www.cnblogs.com/Nothing-9708071624/p/10167982.html
例:深度优先算法中使用到auto& y:graph[x]对有向图中的路径进行搜索和回溯。
void dfs(vector<vector<int>>& graph