stack就是“栈” 是容器适配器的一种。栈是一种先进后出的元素序列,访问和删除都只能对栈顶的元素(即最后一个被加入栈的元素)进行,并且元素也只能被添加到栈顶。栈内的元素不能访问。如果一定要访问栈内的元素,只能将其上方的元素全部从栈中删除,使之变成栈顶元素才可以。
push(elem); //向栈顶添加元素
pop(); //从栈顶移除第一个元素
top(); //返回栈顶元素
empty(); //判断堆栈是否为空
size(); //返回栈的大小
测试
void test_1() { stack<int> s; s.push(10); s.push(11); while(!s.empty()) { cout<<"栈的大小为:"<<s.size()<<endl; cout<<"栈顶元素为:"<<s.top()<<endl; s.pop(); } cout<<"栈的大小为:"<<s.size()<<endl; }queue 就是“队列”。队列是先进先出的,和排队类似。队头的访问和删除操作只能在队头进行,添加操作只能在队尾进行。不能访问队列中间的元素。队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为 queue 可以用 list 和 deque 实现,默认情况下用 deque 实现。
测试
void test_2() { queue<int> q; q.push(1); q.push(4); q.push(6); q.push(9); cout<<"队列大小为:"<<q.size()<<endl; cout<<"队头元素为:"<<q.front()<<endl; cout<<"队尾元素为:"<<q.back()<<endl; q.pop(); cout<<"队列大小为:"<<q.size()<<endl; cout<<"队头元素为:"<<q.front()<<endl; cout<<"队尾元素为:"<<q.back()<<endl; }