2014-03-30 43 views
0

我有两个堆栈的模板类,但我不知道如何配对它们来填充第一个和第二个。任何帮助或想法将不胜感激!这是我现在拥有的。如何使用数组升序排列两个堆栈

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

回答

0

我认为这是更好地为您使用别名为两个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的堆栈式操作的特定容器。