看一下这个stack的作用域

int main() {
 int m, n, k;
 scanf("%d %d %d", &m, &n, &k);
 for(int i = 0; i < k; i++) {
 bool flag = false;
 stack<int> s;//这个stack在每次循环后会自动清空吗,为什么
 vector<int> v(n + 1);
 for(int j = 1; j <= n; j++)scanf("%d", &v[j]);
 int current = 1;
 for(int j = 1; j <= n; j++) {
 s.push(j);
 if(s.size() > m) break;
 while(!s.empty() && s.top() == v[current]) {
 s.pop();
 current++;
 }
 }
 if(current == n + 1) flag = true;
 if(flag) printf("YES\n");
 else printf("NO\n");
 }
 return 0;
```c++
这个stack在每次循环后会自动清空吗,为什么


按理说应该不清空,但是你判断s长度大于m就跳出循环是干什么用的
你给s里输入n个数,但是循环到m次程序就结束了?

求解