2016-06-28 12 views
0

以下のプログラムでは、そのクラスのメンバ関数でスタックデータをどのように出力できますか? テンプレートを使用したC++でのスタック実装

#include <iostream> 
#include <vector> 

using namespace std; 

template <class T> 
class box{ 
    public : 
      vector<T> elems; 
      void push(T); // pushing data into stack 
      void pop(); 
      void display(); // displaying the stack data 
}; 

template <class T> void box<T> :: push(T ele) 
{ 
    elems.push_back(ele); // pushing stack elements 
} 

template <class T> void box<T> :: pop(void) 
{ 
    elems.pop_back(); 
} 

template <class T> void box<T> :: display(box &b) 
{ 
    //How to display the data inserted in stack here?? 
} 

int main(void) 
{ 
    box<int> b; 
    b.push(3); // inserting stack data into template 
    b.push(4); 
    b.push(5); 
    b.push(6); 
    b.push(7); 
} 

は、私がデータを印刷しようとしたが、それは適切ではなかったので、私はスタック要素

+0

"データを印刷しようとしましたが、適切ではありませんでした"あなたが試したことと、それがいかに適切ではなかったかを示してください。 – songyuanyao

+0

'elems'ベクトルを反復して要素にアクセスします。 – molbdnilo

+0

popはTを返します: 'T pop()' ... –

答えて

2

box& bに合格する必要はありませんにアクセスすることができますどのように私はわかりません。あなたはできます:

0

"elems"ベクトルを反復して要素を印刷するだけです。

> template <class T> void box<T>::display() { 
>  for(int i=0;i<elems.size();i++) 
>   cout<<elems[i]<<"\n"; 
> } 

注:
サイズは() - ベクター内の要素の数を返します。

関連する問題