如何使用数组以升序成对两个堆栈
How to pair two stacks in ascending order using an array
我有两个堆栈的模板类,但我不知道如何将它们配对以先填充一个,然后填充第二个。任何帮助或想法将非常感激!以下是我目前的资料
template<class Item> stackpair<Item>::stackpair()
{
};
template<class Item> stackpair<Item>::stack_a()
{
used = 0;
for (size_t i = 0; i < CAPACITY; i++)
{
data_first[i] = Item();
}
};
template<class Item> stackpair<Item>::stack_b()
{
used = 0;
for (size_t i = 0; i < CAPACITY; i++)
{
data_second[i] = Item();
}
};
我认为您最好为两个std::array
的std::pair
使用别名,而不是定义具有类似功能的新类:
template<typename Item, std::size_t N>
using stackpair = std::pair<std::array<Item, N>, std::array<Item, N>>;
并实例化它们:
stackpair<Example, CAPACITY> sp;
和fill
:
sp.first.fill(Example());
sp.second.fill(Example());
还要注意,有一个特定的容器用于类似堆栈的操作,名为std::stack
。
相关文章:
- 如何在C++中从两个单独的for循环中添加两个数组
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 如何返回一个类的两个对象相加的结果
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 在什么情况下,两个堆栈分配的结构对象的 this 点指向同一个地址?
- 堆栈分配的类类型.为什么两个 ID 实例的地址相同?
- 当两个函数位于一行中时,堆栈框架的样子
- 查看使用堆栈是否相等的两个字符串
- 系统堆栈中的两个函数的递归调用(将不同数量的数组作为参数传递)有什么区别
- 如何在C++中检查两个堆栈是否相同
- C++堆栈实现 - 两个版本的 top 方法
- 将两个图像堆栈的非电源加载到 3D 纹理 OpenGL C++
- C++ 使用两个附加堆栈反转堆栈
- 如何循环两次,将不同的值插入两个不同的堆栈
- 用两个堆栈实现队列——脱队列测试问题
- 两个暗淡的数组,指向它的一部分和堆栈损坏
- 在c++中将两个相关的std::堆栈合并为std::map的计算效率如何?
- 如何使用数组以升序成对两个堆栈
- 两个线程从无锁堆栈中删除