注册 登录
编程论坛 C++教室

关于#include<stack>的使用问题

wu3097857312 发布于 2012-09-08 21:44, 3894 次点击
本人刚学数构,在使用这个关于栈的函数时有些疑问,我用stack<elem> q申明了q这个变量,其中elem是一个包含有的一个一维字符数组的结构体。就q这个变量我做完没问题,但是如果是输入多组的字符串,要进行存储的话,没办法一个个申请变量。所以用这个《stack》函数还能实现这种输入码。
9 回复
#2
ly22222012-09-08 21:58
看看
#3
pangding2012-09-08 22:10
c++ 的问题。
#4
TonyDeng2012-09-08 22:11
以下是引用pangding在2012-9-8 22:10:41的发言:

c++ 的问题。

给你移过去?
#5
pangding2012-09-08 22:11
可以呀。你用 q.push_back(..) 就行了吧。
#6
pangding2012-09-08 22:11
以下是引用TonyDeng在2012-9-8 22:11:20的发言:


给你移过去?

好呀。
#7
wu30978573122012-09-09 07:15
有没哪位能详解下q.push_back().
#8
pangding2012-09-09 09:52
以下是引用wu3097857312在2012-9-9 07:15:23的发言:

有没哪位能详解下q.push_back().

你连搜索引擎也不会使吗?
#9
wu30978573122012-09-10 07:35
回复 8楼 pangding
没找到具体怎么样用,看了几个像是描述这个的,没懂.....
#10
pangding2012-09-10 23:23
像这样:
程序代码:
#include <iostream>
#include <stack>
using namespace std;

struct elem { char name[20]; };

istream &operator >> (istream &in, elem &e)
{ return in >> e.name; }

ostream &operator << (ostream &out, const elem &e)
{ return out << e.name; }

int main(int argc,char* argv[])
{
    elem e;
    stack<elem> s;

    for (int i = 0; i < 3; i++)
    {
        cin >> e;
        s.push(e);
    }

    for (;!s.empty();s.pop())
        cout << s.top() << endl;

    return 0;
}
执行起来是这样的:
Tom    # 输入
Bob    # 输入
Jerray    # 输入
Jerray
Bob
Tom

1