淄博网站建设-中国互联,中山免备案网站建设,广东队对阵广州队,百度上公司做网站文章目录 1.stack的介绍2.stack的使用2.1stack构造函数2.1stack成员函数#xff08;1#xff09;empty() 检测stack是否为空#xff08;2#xff09;size() 返回stack中元素的个数#xff08;3#xff09;top() 返回栈顶元素的引用#xff08;4#xff09;push() 将元素… 文章目录 1.stack的介绍2.stack的使用2.1stack构造函数2.1stack成员函数1empty() 检测stack是否为空2size() 返回stack中元素的个数3top() 返回栈顶元素的引用4push() 将元素val压入stack中5pop() 将stack中尾部的元素弹出 1.stack的介绍
stack的介绍 1.stack是一种容器适配器专门用在具有后进先出操作的上下文环境中其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适配器被实现的容器适配器即是对特定类封装作为其底层的容器并提供一组特定的成员函数来访问其元素将特定类作为其底层的元素特定容器的尾部(即栈顶)被压入和弹出。 3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类这些容器类应该支持以下操作 empty判空操作 back获取尾部元素操作 push_back尾部插入元素操作 pop_back尾部删除元素操作 4. 标准容器vector、deque、list均符合这些需求默认情况下如果没有为stack指定特定的底层容器默认情况下使用deque。 2.stack的使用 2.1stack构造函数 stack类是一个容器适配器它是基于其他容器类型默认情况下是deque实现的。stack类提供了一种后进先出LIFO的数据结构类似于真实生活中的堆栈。
#include iostream
#include stack
#include vectorint main() {// 示例1使用默认构造函数创建一个空的stack对象。std::stackint myStack;// 示例2使用拷贝构造函数创建一个与现有stack对象相同的新对象。std::stackint otherStack;otherStack.push(1);otherStack.push(2);std::stackint newStack(otherStack);// 示例3使用构造函数模板创建一个基于vector的stack对象。std::stackint, std::vectorint intStack;intStack.push(10);intStack.push(20);// 输出示例2中新创建的stack对象的元素std::cout 示例2中新创建的stack对象的元素;while (!newStack.empty()) {std::cout newStack.top() ;newStack.pop();}std::cout std::endl;// 输出示例3中基于vector的stack对象的元素std::cout 示例3中基于vector的stack对象的元素;while (!intStack.empty()) {std::cout intStack.top() ;intStack.pop();}std::cout std::endl;return 0;
}//示例2中新创建的stack对象的元素2 1
//示例3中基于vector的stack对象的元素20 10 2.1stack成员函数
1empty() 检测stack是否为空 empty()是stack类的一个成员函数用于检查当前的stack是否为空。当stack中没有任何元素时empty()函数返回true当stack中至少有一个元素时empty()函数返回false。 empty()函数的使用非常简单只需在一个stack对象上调用该函数即可。以下是empty()函数的用法示例
#include iostream
#include stackint main() {std::stackint myStack;// 检查stack是否为空if (myStack.empty()) {std::cout Stack is empty std::endl;} else {std::cout Stack is not empty std::endl;}// 将元素压入stackmyStack.push(10);myStack.push(20);// 再次检查stack是否为空if (myStack.empty()) {std::cout Stack is empty std::endl;} else {std::cout Stack is not empty std::endl;}return 0;
}//Stack is empty
//Stack is not empty2size() 返回stack中元素的个数 size()是stack类的一个成员函数用于获取当前stack中的元素数量。size()函数返回一个整数表示stack中的元素数目。 size()函数的使用非常简单只需在一个stack对象上调用该函数即可。以下是size()函数的用法示例
#include iostream
#include stackint main() {std::stackint myStack;// 添加元素到stackmyStack.push(10);myStack.push(20);myStack.push(30);// 获取stack中的元素数量int stackSize myStack.size();std::cout Stack size: stackSize std::endl;// 弹出一个元素myStack.pop();// 再次获取stack中的元素数量stackSize myStack.size();std::cout Stack size after pop: stackSize std::endl;return 0;
}//Stack size: 3
//Stack size after pop: 23top() 返回栈顶元素的引用 top()是stack类的一个成员函数用于获取stack顶部即最后压入的的元素的值而不会将该元素从stack中移除。 top()函数的使用非常简单只需在一个stack对象上调用该函数即可。以下是top()函数的用法示例
#include iostream
#include stackint main() {std::stackint myStack;// 添加元素到stackmyStack.push(10);myStack.push(20);myStack.push(30);// 获取stack顶部的元素值int topElement myStack.top();std::cout Top element: topElement std::endl;return 0;
}//Top element: 304push() 将元素val压入stack中 push()是stack类的一个成员函数用于将一个元素压入即添加到stack的顶部。 push()函数的使用非常简单只需在一个stack对象上调用该函数并传递要压入的元素作为参数即可。以下是push()函数的用法示例
#include iostream
#include stackint main() {std::stackint myStack;// 将元素压入stackmyStack.push(10);myStack.push(20);myStack.push(30);// 获取stack顶部的元素值int topElement myStack.top();std::cout Top element: topElement std::endl;return 0;
}//Top element: 305pop() 将stack中尾部的元素弹出 pop()是stack类的一个成员函数用于移除stack顶部即最后压入的的元素但并不返回该元素的值。 pop()函数的使用非常简单只需在一个stack对象上调用该函数即可。以下是pop()函数的用法示例
#include iostream
#include stackint main() {std::stackint myStack;// 添加元素到stackmyStack.push(10);myStack.push(20);myStack.push(30);// 移除stack顶部的元素myStack.pop();// 获取新的stack顶部的元素值int topElement myStack.top();std::cout Top element after pop: topElement std::endl;return 0;
}//Top element after pop: 20