C++容器之Stack

简介

         Stack是一种容器适配器,专门为元素后进先出操作而设计。元素只能在容器的一端插入和删除。

         Stack被作为容器适配器而实现,它是一个使用指定容器类作为其潜在容器存储元素,并提供一组操作函数对容器中的元素进行操作的类。

         潜在容器可以是任何的标准容器或一些被特别设计的容器类。但它们必须满足以下几个操作:

Ø  back()

Ø  push_back()

Ø  pop_back()

其中标准容器中的vector、deque和list都能满足这些要求。默认情况下,如果没有特别指明那个容器类作为stack类潜在容器,deque将作为其默认的实例化容器类。

成员函数


stack::stack()

         构造一个stack容器适配器对象。

stack::empty()

         判断容器是否为空,如果是返回true,否则返回false。

stack::size()

         返回statck中元素的个数。

stack::top()

         返回一个指向栈顶的引用。

stack::push()

         向栈顶插入一个元素。

stack::emplace()

         向栈顶插入一个元素,元素通过其构造函数构造。

stack::pop()

         从栈顶移除一个元素。

stack::swap()

         交换两个栈的元素。

示例程序

#include <iostream>
#include <stack>
#include <deque>
#include <vector>

using namespace std;

int main(void)
{
	deque<int> deq(3, 10);
	vector<int> vec(3, 20);
	
	// stack::stack()
	stack<int> first;
	stack<int> second(deq);
	stack<int, vector<int>> third;
	stack<int, vector<int>> fourth(vec);
	
	// stack::empty()
	if(!second.empty()){
		cout << "Stack is not empty." << endl;
	}else{
		cout << "Stack is empty." << endl;
	}
	
	// stack::size()
	cout << "The size of fourth is " << fourth.size();
	cout << endl;
	
	// stack::top()
	cout << "The top element is " << second.top() << endl;
	
	// stack::push()
	second.push(20);
	cout << "The top element is " << second.top() << endl;
	
	//stack::emplace()
	second.emplace(30);
	cout << "The top element is " << second.top() << endl;
	
	// stack::pop()
	second.pop();
	cout << "The top element is " << second.top() << endl;
	
	// stack::swap()
	second.swap(first);
	cout << "The size of first : " << first.size() << endl;
	cout << "The size of second : " << second.size() << endl;
	
	return 0;
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于容器 stack,我可以给你一些简单的介绍。 在C++中,stack是一种容器适配器(container adapter),它提供了一种后进先出(LIFO)的数据结构。stack基于另一个容器(默认情况下是deque)来实现其操作。它的主要操作包括推入元素到栈顶、从栈顶弹出元素以及访问栈顶元素,这些操作都是在常数时间内完成的。 要使用stack容器,首先需要包含头文件<stack>。然后,你可以声明一个stack对象,并使用其成员函数来操作栈。以下是一些常用的stack操作: 1. push(element): 将元素压入栈顶。 2. pop(): 从栈顶弹出一个元素,但不返回它。 3. top(): 返回栈顶元素,但不将其从栈中移除。 4. empty(): 检查栈是否为空。 5. size(): 返回栈中元素的数量。 下面是一个简单的示例代码,演示了如何使用stack容器: ```cpp #include <iostream> #include <stack> int main() { std::stack<int> myStack; myStack.push(3); myStack.push(5); myStack.push(8); std::cout << "Size of stack: " << myStack.size() << std::endl; std::cout << "Top element: " << myStack.top() << std::endl; myStack.pop(); std::cout << "Size of stack after pop: " << myStack.size() << std::endl; return 0; } ``` 在这个示例中,我们首先创建了一个存储整数的stack对象myStack。然后,我们使用push函数将一些元素压入栈顶,并使用top函数访问栈顶元素。最后,我们使用pop函数弹出一个元素,并检查栈的大小。 希望这个简要介绍能对你有所帮助!如果你有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值