• 《Cracking the Coding Interview》——第8章:面向对象设计——题目5


    2014-04-23 18:42

    题目:设计一个在线阅读系统的数据结构。

    解法:这题目太大了,我的个亲娘。显然你不可能一次加载一整本书,做到单页纸加载的粒度是很必要的。为了读书的连贯效果,预取个几页也很必要。

    代码:

     1 // 8.5 Deign a class for an online book reader system.
     2 #include <unordered_map>
     3 using namespace std;
     4 
     5 class BookReaderSystem {
     6 public:
     7     BookReaderSystem() {};
     8     
     9     // find a book by its name and read it.
    10     void readBook(string book_name) {
    11         Page page;
    12         
    13         if (books.find(book_name) != books.end()) {
    14             i = 0;
    15             // load the book page by page
    16             while (page = loadPage(books[book_name], i, page)) {
    17                 displayPage(page);
    18                 ++i;
    19             }
    20         }
    21     };
    22     
    23     ~BookReaderSystem() {
    24         books.clear();
    25     };
    26 private:
    27     // the K-V database
    28     unordered_map<string, Book> books;
    29     // load one page from a book
    30     bool loadPage(Book &book, int page_no, Page &page);
    31     // display this page
    32     void displayPage(Page &page);
    33 };
  • 相关阅读:
    js 保留两位小数 input要求是数字框,
    ionic实现滑动的三种方式
    如何在只封装异步请求的两个接口中实现同步请求
    ng-trim
    ng-repeat
    angular.js开发 将多页面开发成单页面
    接口
    记忆
    心情
    最小化安装CentOS-7-x86_64-Minimal-1511图文教程
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3683613.html
Copyright © 2020-2023  润新知