在下面的程序中,如何在该类的成员函数中打印堆栈数据?
#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 :(得分:2)
无需传递box& b
。你可以这样做:
template <class T> void box<T>::display() {
for(T& e : elems) {
std::cout << e << std::endl;
}
}
答案 1 :(得分:0)
您可以简单地遍历“elems”向量并打印其元素。
> template <class T> void box<T>::display() {
> for(int i=0;i<elems.size();i++)
> cout<<elems[i]<<"\n";
> }
注意:强>
size() - 返回向量中的元素数。