第十二章 12.3.2节练习
2014-09-05 01:09
106 查看
练习12.30
定义你自己版本的TextQuery和QueryResult类,并执行12.3.1节(第431页)中的runQueries函数。
解答:
将代码敲入计算机,进行调试。
练习12.31
如果用vector代替set保存行号,会有什么差别?哪种方式更好?为什么?
解答:
使用vector来代替set来保存行号也是可行的,不过需要有个查重的步骤,然后通过是否有重复的行号。
相较而言肯定是set更为合适一些,少了去重的步骤,易与理解,也让程序的效率更高。
练习12.32
重写TextQuery和QueryResult类,用StrBlob代替vector<string>保存输入文件。
解答:
其实StrBlob在本质上和vector没什么区别,几乎就可以无缝替换的。
在替换的时候,注意一下shared_ptr那一部分就可以了。
当然,想要在练习一下weak_ptr,可以吧StrBlobPtr也加上一起使用。
练习12.33
在第15章中我们将扩展查询系统,在QueryResult类中将会须要一些额外的成员。添加名为begin和end的成员,返回一个迭代器,指向一个给定查询返回的行号的set中的位置。再添加一个名为get_file的成员,返回shared_ptr,指向QueryResult对象中的文件。
解答:
这里lines是一个set<line_no>类型的指针,可以使用这个来获取begin和end迭代器。
get_file这个成员函数,可以直接进行添加,函数在public部分,将file成员变量作为返回值。
定义你自己版本的TextQuery和QueryResult类,并执行12.3.1节(第431页)中的runQueries函数。
解答:
将代码敲入计算机,进行调试。
练习12.31
如果用vector代替set保存行号,会有什么差别?哪种方式更好?为什么?
解答:
使用vector来代替set来保存行号也是可行的,不过需要有个查重的步骤,然后通过是否有重复的行号。
相较而言肯定是set更为合适一些,少了去重的步骤,易与理解,也让程序的效率更高。
练习12.32
重写TextQuery和QueryResult类,用StrBlob代替vector<string>保存输入文件。
解答:
其实StrBlob在本质上和vector没什么区别,几乎就可以无缝替换的。
在替换的时候,注意一下shared_ptr那一部分就可以了。
当然,想要在练习一下weak_ptr,可以吧StrBlobPtr也加上一起使用。
练习12.33
在第15章中我们将扩展查询系统,在QueryResult类中将会须要一些额外的成员。添加名为begin和end的成员,返回一个迭代器,指向一个给定查询返回的行号的set中的位置。再添加一个名为get_file的成员,返回shared_ptr,指向QueryResult对象中的文件。
解答:
这里lines是一个set<line_no>类型的指针,可以使用这个来获取begin和end迭代器。
get_file这个成员函数,可以直接进行添加,函数在public部分,将file成员变量作为返回值。
相关文章推荐
- simply scheme 第十二章 练习
- 第十二章上机练习3
- 第十二章 12.1.3节练习
- objective-c第十二章练习答案
- (一三五)第十二章编程练习
- 《Python核心编程》第二版第326页第十二章练习 -Python核心编程答案-自己做的-
- 【学习C++】C++ Primer Plus (第六版)第十二章编程练习1-6
- 《Erlang 程序设计》练习答案 -- 第十二章 并发编程
- C Primer Plus 第十二章 编程练习 1-8题
- c++ primer plus(第6版)中文版 第十二章编程练习答案
- 现代软件工程 第十二章 【用户体验】练习与讨论
- C++ primer plus 第十二章编程练习
- 第十二章练习总结
- 《Android 群英传》 阅读笔记 第十章~第十二章(附练习代码)
- 第十二章 上机练习第4题
- 《Python核心编程》第二版第326页第十二章练习 续一 -Python核心编程答案-自己做的-
- 《Android编程权威指南(第三版)》第十二章挑战练习Demo上
- 记录——《C Primer Plus (第五版)》第十二章编程练习第1-8题
- 第十二章编程练习(1)
- 现代软件工程 第十二章 【用户体验】练习与讨论