如何使用数组以升序成对两个堆栈

How to pair two stacks in ascending order using an array

本文关键字:两个 堆栈 数组 何使用 升序      更新时间:2023-10-16

我有两个堆栈的模板类,但我不知道如何将它们配对以先填充一个,然后填充第二个。任何帮助或想法将非常感激!以下是我目前的资料

    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::arraystd::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