写一个使用了STL的结构体队列
时间: 2024-10-16 19:17:52 浏览: 18
STL priority_queue(优先队列)详解
5星 · 资源好评率100%
在C++标准模板库(Standard Template Library, STL)中,你可以使用`std::queue`容器来创建一个结构体类型的队列。这里是一个简单的示例,假设我们有一个名为`MyStruct`的结构体:
```cpp
#include <iostream>
#include <queue>
// 定义结构体 MyStruct
struct MyStruct {
int value;
std::string name;
};
// 如果需要,可以提供适当的拷贝构造函数和赋值运算符
std::ostream& operator<<(std::ostream& os, const MyStruct& ms) {
return os << "Value: " << ms.value << ", Name: " << ms.name;
}
int main() {
// 使用std::queue存储MyStruct对象
std::queue<MyStruct> queue;
// 入队操作 (enqueue)
MyStruct item = {10, "Example"};
queue.push(item);
// 出队操作 (dequeue)
if (!queue.empty()) {
MyStruct poppedItem = queue.front();
queue.pop(); // 移除最前端的元素
std::cout << "Popped item: " << poppedItem << '\n';
} else {
std::cout << "Queue is empty.\n";
}
return 0;
}
```
在这个例子中,`std::queue`自动管理内部的内存,提供了一种安全、高效的方式来存储和删除元素。当你想要插入一个新元素时,使用`push`,从队列头部取出元素则使用`front`和`pop`。
阅读全文