.
栈就是一个顶入顶出的东西,对于他只能是对顶部的东西进行操作和读栈的大小,判断栈是否为空
#include<iostream>
#include<stack>
using namespace std;
void print(stack<int> a)
{
while(!a.empty())
{
cout<<a.top()<<" ";
a.pop();
}
cout<<endl;
}
void te(){
stack<int>a;
stack<int>b;
for(int i=0;i<10;i++) b.push(i);
cout<<"b="; print(b);
a=b;
cout<<"a=";print(a);
stack<int>c(b);cout<<"c=";print(c);
cout<<a.size()<<endl;
}
int main()
{
// te();
cout<<"青宝我爱你~";
return 0;
}
队列就是走独木桥,先上桥先过河,比stack多了一个可访问队首队尾元素,stack只可访问栈顶元素,其他的api都大致一样
#include<iostream>
using namespace std;
//#include<stack>
//void printstack(stack<int> a)
//{
// while(!a.empty())
// {
// cout<<a.top()<<" ";
// a.pop();
// }
// cout<<endl;
//}
//void test_stack(){
// stack<int>a;
// stack<int>b;
// for(int i=0;i<10;i++) b.push(i);
// cout<<"b="; printstack(b);
// a=b;
// cout<<"a=";printstack(a);
// stack<int>c(b);cout<<"c=";printstack(c);
// cout<<a.size()<<endl;
//}
#include<queue>
void printqueue(queue<int>q)
{
if(q.empty())
{
cout<<"empty"<<endl;
}
else {
while(!q.empty())
{
cout<<q.front()<<" ";
q.pop();
}
cout<<endl;
}
}
void test_queue()
{
queue<int> q1,q2;
for(int i=1;i<=10;i++)
{
q2.push(i);
}
printqueue(q2);
cout<<"q2.front()="<<q2.front()<<" "<<"q2.back="<<q2.back()<<endl;
cout<<"q1.size()="<<q1.size()<<endl<<"q1.empty()="<<q1.empty()<<endl;
q1=q2;
cout<<"q1.size()="<<q1.size()<<endl<<"q1.empty()="<<q1.empty()<<endl;
printqueue(q1);
queue<int>q3(q2);
printqueue(q2);
}
int main()
{
// test_stack();
test_queue();
// cout<<"青宝我爱你~";
return 0;
}