请大家给我看看这段程序哪错了:
#include<bits/stdc++.h>
using namespace std;
int main(){
//
set<int>s;
map<string,int>m;
set<int>::iterator it_s;
map<string,int>::iterator it_m;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(1);
cout<<"set:"<<s.size()<<'\n';
for(it_s=s.begin();it_s!=s.end();it_s++)
printf("%d ",*it_s);
printf("\ns.begin:%d",*s.begin());
printf("\ns.rbegin:%d",*s.rbegin());
printf("\ns.end:%d",*s.end());
printf("\ns.rend:%d",*s.rend());
printf("\n--s.end:%d",*--s.end());
printf("\n--s.rend:%d",*--s.rend());
m["a"]=1,m["b"]=2;
m["c"]=3,m["d"]=4;
m["A"]=27,m["B"]=28;
m["C"]=29,m["D"]=30;
printf("map:size=%d\n",m.size());
for(it_m=m.begin();it_m!=m.end();it_m++)
printf("%s:%d ",*(it_m->first),*(it_m->second));
printf("\nm.begin:(%s:%d)",(m.begin()->first),(m.begin->second));
printf("\nm.end:(%s:%d)",(m.end()->first),(m.end()->second));
printf("\nm.rbegin:(%s:%d)",(m.rbegin()->first),(m.rbegin->second));
printf("\nm.rend:(%s:%d)",(m.rend()->first),(m.rend->second));
return 0;
}