#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>这种多组字符串输入的方法希望能教下。
[解决办法]
#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;}