栈:
<1>使用栈,要包含头文件:#include <stack>
<2>定义栈,stack<Type> s; 其中Type为数据类型,可以是基本数据类型(如char, int, float等),也可以是用户自定义的类型(如用户自定义的结构体类型或者class类型);
<3>栈的几种基本操作:
1 stack<Type> s; //定义一个类型为Type,名称为s的栈 2 s. push(item); //将元素item压入栈中 3 s.pop(); //删除栈顶元素,但并不返回该元素,该函数的返回值为void 4 s.top(); //访问栈顶元素并返回该元素 5 s.size(); //返回栈中元素的个数 6 s.empty(); //判断栈是否为空,如果为空则返回true,否则返回false
队列:
<1>使用队列,要包含头文件:#include <queue>
<2>定义队列,queue<Type> q; 其中Type为数据类型,可以是基本数据类型(如char, int, float等),也可以是用户自定义的类型(如用户自定义的结构体类型或者class类型);
<3>队列的几种基本操作:
1 queue<Type> q; //定义一个类型为Type,名称为q的队列 2 q.push(item); //将item压入队列中 3 q.pop(); //删除队首元素,但不返回该元素,该函数的返回值为void 4 q.front(); //访问队首元素并返回该元素 5 q.back(); //访问队尾元素并返回该元素 6 q.size(); //返回队列中元素的个数 7 q.empty(); //检查队列是否为空,如果为空则返回true,否则返回false
双端队列:
双端队列的声明:
1 #include<deque> //头文件 2 deque<type> deq; //声明一个元素类型为type的双端队列deq 3 deque<type> deq(size); //声明一个类型为type、含有size个默认值初始化元素的的双端队列deq 4 deque<type> deq(size, value); //声明一个元素类型为type、含有size个value元素的双端队列deq 5 deque<type> deq(mydeque); //deq是mydeque的一个副本 6 deque<type> deq(first, last); //使用迭代器first、last范围内的元素初始化deq
双端队列的成员函数:
1 deq[i]; //用来访问双向队列中单个的元素。 2 deq.front(); //返回第一个元素的引用。 3 deq.back(); //返回最后一个元素的引用。 4 deq.push_front(x); //把元素x插入到双向队列的头部。 5 deq.pop_front(); //弹出双向队列的第一个元素。 6 deq.push_back(x); //把元素x插入到双向队列的尾部。 7 deq.pop_back(); //弹出双向队列的最后一个元素。