[英]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.