比较考验关联容器之间的运用和字符串的相关知识的运用
下面代码有解析
#include #include #include #include #include #include #include using namespace std; typedef struct Node{ string book,name;//定义一个结构体 表示一个整体 有book,name bool operator<(const struct Node&a)const{//因为要排序,所以重新定义<,加上set是自动排序,就按照我们规定的排了; if(name!=a.name)return namest;//集合为了存放一个整体; 表示已上架的书 mapmp;//用来存放book,name; string s; node de; int p;//主要是找 "; while(getline(cin,s)){ if(s[0]=='E') break; p=s.find('"',1);//find()返回下标 意思是从下标为1开始找 默认下标为0; de.book=s.substr(0,p+1);//substr() 就是从某一个下标到另一个下标 de.name=s.substr(p+5);//如果为一个 则到末尾; st.insert(de); mp.insert(make_pair(de.book,de.name));//注意赋值的方式; } setst1;//定义了一个集合 存放归还的未上架 ; while(getline(cin,s)){ if(s[0]=='E') break; if(s[0]=='S'){ set::iterator it,it1; for(it=st1.begin();it!=st1.end();it++){ cout<<"Put "<< it->book <<" "; it1=st.lower_bound(*it); if(st.empty()||it==st.begin())//找第一个比it大的下标 cout<<"first"<book<
关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心
版权所有: 红黑联盟--致力于做实用的IT技术学习网站