(c++)我在vc上可以运行,为什么在Linux下运行不了?

#include<iostream>
#include<list>
#include<string>
using namespace std;
struct set
{
  string name;
  int a;
};
void dede(list<set>&p)
{
     list<set>::iterator it;
for(it=p.begin();it!=p.end();it++)
                cout<<it->name<<" "<<it->a<<" ";
             cout<<endl;


}
int main()
{
        set q;
    list<set> p;
        list<set>::iterator it;
        for(int i=0;i<4;i++)
        {
                cin>>q.name>>q.a;
                p.push_back(q);
        }
        dede(p);
return 0;
}

 

因为c++的环境 windows和 linux不一样