推入堆栈的替代方法

时间:2016-07-25 00:20:05

标签: c++ stack push

我开发了这个程序来添加和检索堆栈中的15 $。 我想知道是否有另一种更有效的方法来编写我的代码。

#include <iostream>
#include <stack>
#include <vector>

using namespace std;

int main()
{
    const int MAX = 100;
    int count;


    stack<int, vector<int> > billStack;

    for (int i=0; i<15; i++) {
        billStack.push(i);      // add 15 bills onto stack
    }

    cout << "The stack has " << billStack.size() << " bills.\n";

    int cash;
    cout << "How many bills to retrieve?\n";
    cin >> cash;
    for (int i = 0; i< cash; i++) {
        billStack.pop();
    }
    cout << "Cash out :" << cash << ". Remaining: " << billStack.size() << endl;
    return 0;
}

1 个答案:

答案 0 :(得分:2)

考虑到你不能使用堆栈的实际内容,只是它的大小:

 #include <iostream>

 using namespace std;

 int main()
 {
 int stackSize = 15;
 cout << "The stack has " << stackSize << " bills.\n";

 int cash;
 cout << "How many bills to retrieve?\n";
 cin >> cash;

 stackSize -= cash;
 cout << "Cash out :" << cash << ". Remaining: " << stackSize << endl;
 return 0;
 }