谁能给解释一下这个循环?
钱能书上一个关于栈的例子:有个循环看不懂,大家帮忙解释。钱能的书跳跃真是太大了!
#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");
}
}
}
#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");
}
}
}
...全文
相关推荐
正则表达式[\s\S]*与[\w\W]* 什么意思
不是这样的吗?谁能给我解释一下[ ]的所有用法?感谢答:是完全通配的意思,\s是指空白,包括空格、换行、tab缩进等所有的空白,而\S刚好相反这样一正一
JS循环结构有哪些?循环结构概述
这里我们将详细探讨三种主要的JS循环结构:for循环、while循环以及do...while循环。1. **for循环** for循环通常用于已知循环次数的情况。
python循环输出三角形图案的例子
这个例子涉及到两个关键概念:`for`循环的嵌套以及字符串的输出。首先,让我们详细解释一下代码的逻辑。
京东豆车脚本,解释一下:就是组队光分京豆,每天有很多这种活动,车头可以获得很多豆豆
解释一下:就是组队光分京豆,每天有很多这种活动,车头可以获得很多豆豆
Java中遍历数组使用foreach循环还是for循环?
此外,关于性能,虽然在大多数情况下`foreach`循环和`for`循环的差异可以忽略不计,但在极端情况下,`for`循环可能略快一些。


