Post

hdu1497.图书管理系统

hdu1497.图书管理系统

Problem Discription

  • N books(id from1~N), M users(id from 1~M)
  • every user are only allowed to borrow 9 books .
  • only three commands : Borrow the book , Return the book , Query the user .

Note

  • 用vector声明二维数组,不能只初始化外层的大vector,一定要==把小vector也给初始化==,否则会导致运行时错误!
    1
    2
    3
    4
    5
    
    // 初始化为N行,每行有2个string
    vector<vector<int>>books(N,vector<int>(2));
      for(int i=0;i<books.size();i++){
      	books[i][0]=1;//否则在这一步会出现运行时错误
      }
    
  • 为什么switch语句里从case’R’出来会直接跳到case ‘Q’?
    这是因为在 case 'R' 中==缺少 break 语句==,导致代码执行了 Returnx 函数后,会继续向下执行,直到遇到下一个 breakswitch 语句结束。

  • vector的sort排序函数
    ①必须包含<algorithm>
    less<int>(), greater<int>()分别是从小到大、从大到小排序
    1
    
    sort(users[ui-1].begin()+1,users[ui-1].end(),less<int>());
    

注意:==sort函数可以只对vector的一部分进行排序==。
比如我这行代码,起始位置是begin()+1,也就是对第二个元素到最后一个元素这个区间排序,不管第一个元素

This post is licensed under CC BY 4.0 by the author.