谁能给解释一下这个循环?

king 2020 king 2020 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
钱能书上一个关于栈的例子:有个循环看不懂,大家帮忙解释。钱能的书跳跃真是太大了!
#include<iostream>
#include<fstream>
#include<sstream>
#include<stack>
using namespace std;
int main()
{
ifstream in("rail.txt");
for(int n,line=0;in>>n && in.ignore();)
{
cout<<(line++ ? "\n" : "");
for(string s;getline(in,s) && s!="0";)
{
istringstream sin(s);
stack<int> st;
for(int last=0,coach;sin>>coach;st.pop())
{
for(int p=last+1;p<=coach;++p) st.push(p);//这个循环是怎样执行的?并且进栈的是P,还是sin中的一位?last的值始终不变吗?coach的值又是什么?
if(last<coach) last=coach;
if(st.top()!=coach) break;
}
cout<<(!sin ? "Yes\n" : "No\n");
}
}
}
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
king 2020
C++ 语言 65,214 成员 250,514 内容