怎么让c++队列存储指针和整数对
时间: 2024-10-23 21:08:54 浏览: 6
c++11无锁队列的一种简单实现.pptx
在C++中,如果你想让队列同时存储指针和整数对,你可以创建一个自定义的数据结构,例如一个联合体(Union)或者使用一对元组(std::pair)。以下是两种方法的例子:
**方法一:使用联合体**
```cpp
union PairAndPointer {
int value;
int* ptr;
};
std::queue<PairAndPointer> myQueue;
```
然后你可以像操作普通元素一样添加、获取和删除数据:
```cpp
PairAndPointer pair1;
pair1.ptr = new int(10); // 存储指针
myQueue.push(pair1);
// ... 后续操作
delete pair1.ptr; // 在弹出前记得释放内存
```
**方法二:使用std::pair**
```cpp
std::queue<std::pair<int*, int>> myQueue;
```
这里`std::pair<int*, int>`代表一个包含指针和整数的组合。插入和访问也类似:
```cpp
int* ptr = new int(10);
myQueue.push({ptr, 20}); // 存储指针和整数
// ... 后续操作
delete ptr; // 弹出后删除指针
```
阅读全文