接下来讲解一些stack栈和queue的简单使用
stack的概念
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。 特性是先进先出 后进后出
构造一个栈堆
int main()
{deque<int> mydeque(3, 100); // deque with 3 elementsvector<int> myvector(2, 200); // vector with 2 elementsstack<int> first; // 构造空栈stack<int> second(mydeque); // 拷贝deque内容stack<int, vector<int> > third; // 使用vector容器的空栈stack<int, vector<int> > fourth(myvector);//使用拷贝vector容器的栈cout << "size of first: " << first.size() << '\n';cout << "size of second: " << second.size() << '\n';cout << "size of third: " << third.size() << '\n';cout << "size of fourth: " << fourth.size() << '\n';r
empty是stack的成员函数 用于检测当前stack是否为空 返回布尔值 若为空返回真 不为空返回假
这里的empty常常用与出栈遍历时作为while循环结束的条件来使用
返回stack中元素的个数
cout << "size of first: " << first.size() << '\n';cout << "size of second: " << second.size() << '\n';cout << "size of third: " << third.size() << '\n';cout << "size of fourth: " << fourth.size() << '\n';
返回栈顶元素的引用
将stack中尾部的元素弹出
top和pop常常在遍历栈时配合完成出栈和打印操作
将元素val压入stack中
接下来建立一个栈并且完成栈的遍历
int main()
{stack<int> s;s.push(1);s.push(10);s.push(12);s.push(14);s.push(15);s.push(16);s.push(18);s.push(19);while (!s.empty()){int a = s.top();cout << a << " ";s.pop();}cout << endl;return 0;
}
接下来讲解一下queue队列的简单使用
队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端 提取元素。 队列的特性是先进先出
构造容器适配器对象
测试用例
int main()
{deque<int> mydeck(3, 100); list<int> mylist(2, 200); queue<int> first; //创建一个空队列queue<int> second(mydeck); //拷贝mydeck容器内容queue<int,list<int> > third; //创建一个使用list容器的空队列queue<int, list<int> > fourth(mylist);//创建一个使用list容器的队列并且将mylist的内容拷贝使用cout << "size of first: " << first.size() << endl;cout << "size of second: " << second.size() << endl;cout << "size of third: " << third.size() << endl;cout << "size of fourth: " << fourth.size() << endl;return 0;
}
检测队列是否为空,是返回true,否则返回false
返回队列中有效元素的个数
返回队头元素的引用
返回队尾元素的引用
在队尾将元素val入队列
将队头元素出队列
接下来创建一个简单的队列并对其进行遍历
int main()
{queue<int> q;q.push(1);q.push(21);q.push(31);q.push(41);q.push(51);q.push(61);q.push(71);while (!q.empty()){int a = q.front();cout << a << " ";q.pop();}cout << endl;return 0;
}