for循环使用C++11的优势

本文介绍了在解决LeetCode的拓扑排序问题时,使用C++11的for循环相较于C++98的迭代器在避免栈溢出方面的优势。作者对比了自己用传统C++98版本遇到的问题和官方C++11解决方案,揭示了C++11在空间效率上的提升。
摘要由CSDN通过智能技术生成

前言

在刷今日的leetcode时,leetcode每日一题(课程表II,拓扑排序)看完了解析后,手撕了一下代码,发现总是栈溢出,就很奇怪为什么!!,后来看了一下官方解析,发现在使用for循环上有一些不同,我使用的是传统的C++98版本,官方给的是C++11。

源代码

官方的题解:

class Solution {
   
public:
vector<vector<int>>vec;
vector<int> visited; //已经访问过的节点 0代表未访问 1代表正在访问 2代表已访问
vector<int>res;
bool isccurcle=false; //是否形成回环,若是则无法选课
    vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
   
        vec.resize(numCourses); //初始化大小,使直接访问不出错
        visited.resize(numCourses);
        for(const auto &a:prerequisites)
        {
   
            vec[a[1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值