首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

#include<stack>使用有关问题

2012-11-08 
#includestack使用问题#include iostream#include stackusing namespace stdstruct elem { char na

#include<stack>使用问题
#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;
 }
在使用栈的功能时,由于在自己编各个函数很麻烦,所以找人问了<stack>的用法,如果是多组的字符串输入又没办法一个一个定义变量,上面是别人交的,是能使一次输入多组字符串,由于C++没学多少,上面对于输入,出的流重载那段能解释下吗,还有这样被重载后在输入例如字符串的数据有影响吗,如果大家还有其他能解决<stack>这种多组字符串输入的方法希望能教下。

[解决办法]

C/C++ code
#include <iostream>#include <string>#include <vector>#include <iterator>using namespace std;int main(){    string str[3];    cout<<"a example of string:";    for(int i=0; i<3; ++i)        cin>>str[i];        for(i=0; i<3; ++i)        cout<<str[i]<<endl;    vector<string> vec;    cout<<"a emp of vector:";    string temp;    while(cin>>temp)            //ctrl+z终止        vec.push_back(temp);   //向vector容器中加入数据    for(vector<string>::iterator it = vec.begin(); it!=vec.end(); ++it)            //标准库迭代器        cout<<*it<<endl;        return 0;} 

热点排行