如何使用数组以升序对两个堆栈进行配对

时间:2014-03-30 23:50:16

标签: c++

我有两个堆栈的模板类,但我不知道如何配对它们先填充一个然后填充第二个堆栈。任何帮助或想法将不胜感激!这是我现在拥有的。

    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();
        }
    };

1 个答案:

答案 0 :(得分:0)

我认为最好为std::pair两个std::array使用别名,而不是定义具有类似功能的新类:

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的类似堆栈操作的特定容器。