簡體   English   中英

使用模板在C ++中實現堆棧實現

[英]stack implementation in C++ using template

在下面的程序中,如何在該類的成員函數中打印堆棧數據?

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

我嘗試打印數據,但是它不正確,所以我不確定如何訪問堆棧元素

無需傳遞box& b 你可以做:

template <class T> void box<T>::display() {
    for(T& e : elems) {
        std::cout << e << std::endl;
    }
}

您可以簡單地遍歷“ elems”向量並打印其元素。

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

注意:
size()–返回向量中元素的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM