c++ .top()函数
时间: 2024-10-21 16:13:43 浏览: 2
C++标准库容器(如`std::vector`, `std::list`, `std::priority_queue`, 等)通常不直接提供名为`.top()`的方法。但是,如果你指的是`std::stack`、`std::queue`、或`std::priority_queue`这些有特定用途的容器,它们有自己的操作来访问顶部元素:
1. 对于`std::stack`(栈),`.top()`返回并移除栈顶元素[^4]:
```cpp
#include <stack>
std::stack<int> myStack;
myStack.push(1);
myStack.push(2);
int topElement = myStack.top(); // 返回2
myStack.pop(); // 移除2
```
2. 对于`std::queue`(队列),`.front()`返回队头元素,但不移动它[^5]:
```cpp
#include <queue>
std::queue<int> myQueue;
myQueue.push(1);
myQueue.push(2);
int frontElement = myQueue.front(); // 返回1
```
3. 对于`std::priority_queue`(优先队列),`.top()`返回堆顶元素,即具有最高优先级的元素[^6]:
```cpp
#include <queue>
struct MyPriority {
int priority;
int value;
bool operator<(const MyPriority& other) const { return priority > other.priority; }
};
std::priority_queue<MyPriority> myPriorityQueue;
myPriorityQueue.push({1, 5});
myPriorityQueue.push({2, 3});
MyPriority topElement = myPriorityQueue.top(); // 返回{1, 5}
```
请注意,每个容器的具体行为可能略有不同,上述代码示例假设`operator<`已经被定义以支持容器的操作。
阅读全文