Java和c++的栈和队列的异同

Java和c++的栈和队列的异同

Java默认使用Deque

Deque方法的区别

传统的queue是以低地址端为队头,高地址端为队尾

传统的stack是以低地址端为栈底,高地址端为栈顶

pop(),push(),poll()offer(),remove()这类传统方法在deque中都是以高地址为队头的方法,这些方法在queue和stack中

都是以低地址到高地址为参考系的方法

add(),addFirst(),addLast(),offerFirst(),offerLast(),

pollFirst(),pollLast(),removeFirst(),removeLast(),peekFirst,peekLast,getFirst,getLast都是以低地址到高地址为参考系的方法,也是deque中新增的方法

c++

顺序容器还有以下常用成员函数:

  • front():返回容器中第一个元素的引用。
  • back():返回容器中最后一个元素的引用。
  • push_back():在容器末尾增加新元素。
  • pop_back():删除容器末尾的元素。
  • insert(…):插入一个或多个元素。该函数参数较复杂,此处省略。

c++中没有同时删除并返回值的方法,需要先用front(),或back()

返回元素,再用pop_back()pop_front()删除元素