UVA - 230 Borrowers string+vector
来源:互联网 发布:linux git 安装 编辑:程序博客网 时间:2024/05/22 08:14
题目大意:给出n本书,每本书都有相应的title和author,先按照author的大小排序,然后按title的大小排序
现在给出三种操作
BORROW title:借出书名为tile的书
RETURN title:还书,书名为title
SHELVE:把归还的书放回书架,并输出title和放的位置
解题思路:用一个结构体纪录每本书的状态,然后用一个动态数组存储书,具体看代码,对string这stl不太懂,就参考了别人的代码了。。。
#include<cstdio>#include<cstring>#include<string>#include<iostream>#include<algorithm>#include<vector>using namespace std;struct Book{ string author, title; bool borrowed, returned; Book(string a, string b) { title = a; author = b; borrowed = returned = false; }};bool cmpa(Book a, Book b) { return a.author < b.author;}bool cmpb(Book a, Book b) { return a.title < b.title;}vector<Book> All;string cmd, in, req;void shelve() { int j; for(int i = 0; i < All.size(); i++) if(All[i].returned == true) { for(j = i; j >= 0; j--) if(All[j].borrowed == false) break; if(j == -1) printf("Put %s first\n", All[i].title.c_str()); else printf("Put %s after %s\n",All[i].title.c_str(), All[j].title.c_str()); All[i].borrowed = All[i].returned = false; } cout << "END\n";}void borrow() { getline(cin,req); for(int i = 0; i < All.size(); i++) if(All[i].title == req) { All[i].borrowed = true; return ; }}void back() { getline(cin,req); for(int i = 0; i < All.size(); i++) if(All[i].title == req) { All[i].returned = true; return ; }}int main() { while(getline(cin,in) && in != "END") All.push_back(Book(in.substr(0,in.find_last_of("\"") + 1),in.substr(in.find_last_of("\"") + 1) ) ); stable_sort(All.begin(),All.end(),cmpb); stable_sort(All.begin(),All.end(),cmpa); while(cin >> cmd) if(cmd == "BORROW") cin.get(), borrow(); else if(cmd == "RETURN") cin.get(), back(); else if(cmd == "SHELVE") cin.get(), shelve(); return 0;}
0 0
- UVA - 230 Borrowers string+vector
- UVA - 230 Borrowers
- UVa 230 - Borrowers
- UVA - 230 Borrowers
- UVA-230 Borrowers
- Uva - 230 - Borrowers
- UVA 230 Borrowers
- UVA 230(p136)----Borrowers
- UVa 230 Borrowers
- uva 230 Borrowers
- UVA 230 Borrowers
- uva 230 Borrowers
- UVa 230 Borrowers
- uva 230 Borrowers 习题5-8 (STL string,map练习)
- UVa 230 - Borrowers(模拟)
- UVA 230 Borrowers (STL运用)
- UVA 230 Borrowers 简单模拟
- 【UVA】230 - Borrowers(map模拟)
- DebugView 调试入门
- Eclipse 下tomcat 的主页无法打开问题 但工程运行正常
- JDK安装及环境变量的配置
- XML Schema命名空间解析
- arm-linux-gcc/ld/objcopy/objdump参数总结
- UVA - 230 Borrowers string+vector
- 安装MYSQL
- 两个子字符串中所共同拥有的长度最大的子序列是多长
- Tomcat启动失败
- JavaScript实现数组中去重
- x86、STM32(Keil MDK)环境测量一条(段)语句的执行时间小结
- php访问数据库分页显示
- OC中的字符串
- Java switch 语句使用 String 参数