当前位置:编程学习 > C/C++ >>

c++队列问题 从第一张牌仍掉开始,把第一张牌扔掉,然后开始把新的第一张放在整碟牌的后面。

为什么我的程序死循环 。 #include<iostream> #include<queue> using namespace std; queue<int> q; int main() { int n; cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) q.push(a[i]); while(!q.empty()) { cout<<q.front(); q.pop(); q.push(q.front()); } system("pause"); return 0; }
追问:没怎么明白OK
答案:while(!q.empty())
{
cout<<q.front();
q.pop();
q.push(q.front());

} 

你pop了一次 又 push了一次,相当于q的内部元素数量不变
 q.empty()永远返回真,所以死循环
其他:我很奇怪怎么不会死循环呢?先pop然后push q永远不会空

上一个:C++顺序表插入算法运行问题
下一个:以下代码执行错误,将char* string改为char string[]则可以正确执行,求问为何?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,