C++栈<stack>
的函数及使用
stack
是 C++ 标准库中的一个数据结构库,用于提供栈(stack)数据结构的实现。stack
库提供了以下函数:
函数名 | 函数描述 |
---|---|
stack::top() | 获取栈顶元素的引用。如果栈为空,则返回 nullptr 。 |
stack::empty() | 判断栈是否为空。 |
stack::push(T item) | 将元素 item 推入栈顶。 |
stack::pop() | 弹出栈顶元素。如果栈为空,则引发异常。 |
stack::peek() | 获取栈顶元素的引用,但不弹出栈顶元素。如果栈为空,则返回 nullptr 。 |
stack::back() | 获取栈顶元素的值。如果栈为空,则引发异常。 |
stack::reserve(size_t capacity) | 设置栈的容量,以避免栈溢出。 |
stack::size() | 获取栈的元素个数。 |
stack::clear() | 清空栈。 |
以下是一个使用 stack
库的例子,它展示了如何创建一个栈,向栈中推入元素,弹出栈顶元素,以及判断栈是否为空和是否满足容量要求:
#include <iostream>
#include <stack>
int main() {
std::stack<int> s;
s.push(1);
s.push(2);
s.push(3);
std::cout << "top: " << s.top() << std::endl;
std::cout << "is empty: " << (s.empty() ? "yes" : "no") << std::endl;
s.pop();
std::cout << "top: " << s.top() << std::endl;
std::cout << "is empty: " << (s.empty() ? "yes" : "no") << std::endl;
std::cout << "capacity: " << s.size() << std::endl;
std::cout << "is full: " << (s.size() >= s.capacity() ? "yes" : "no") << std::endl;
return 0;
}
在这个例子中,我们使用 std::stack<int>
创建了一个整数类型的栈。然后,我们向栈中推入了三个元素,并使用 top()
函数获取栈顶元素的引用。接着,我们使用 empty()
函数判断栈是否为空,并使用 pop()
函数弹出栈顶元素。最后,我们使用 size()
和 capacity()
函数分别获取栈的元素个数和容量,并使用 is full
函数判断栈是否已满。
希望以上内容对您有所帮助!希望以上内容对您有所帮助!