感觉这个没啥用,但是老是有人说这个,就随便写写看
class Qu {
private:
stack<int> q;
int f;
private:
void _pop() {
if (q.empty()) {
return;
}
if (q.size() == 1) {
q.pop();
return;
}
if (q.size() == 2) {
f = q.top();
}
int v = q.top();
q.pop();
_pop();
q.push(v);
}
void check() {
if (q.empty()) {
throw ("empty");
}
}
public:
void push_back(int v) {
if (q.empty()) {
f = v;
}
q.push(v);
}
int front() {
check();
return f;
}
void pop_front() {
check();
_pop();
}
bool empty() const {
return q.empty();
}
size_t size() const {
return q.size();
}
};
int main() {
Qu q;
for (int i = 0; i < 10; i++) {
q.push_back(i);
}
for (int i = 0; i < 5; i++) {
cout << q.front() << "\t";
q.pop_front();
}
for (int i = 10; i < 20; i++) {
q.push_back(i);
}
int sz = q.size();
for (int i = 0; i < sz; i++) {
cout << q.front() << "\t";
q.pop_front();
}
cout << endl;
}