`
happmaoo
  • 浏览: 4495474 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C++ Primer 泛型算法阅读有感

阅读更多

这个月做VC++界面又有些精进,经验值也有所提高,但对于GDI操作还是接触不多,抽点时间又看了十几页C++ Primer,模板的推演、泛型算法部分也是朦胧:主要是没实际应用过,但是不能说是白看了,但对于思维的延伸还是有点帮助。

比如,在泛型算法中函数指针和Inline函数之间的效率比较,对于温习一下inline函数还是不错的。

实际例子-实现字符串排序,这里使用stable_sort算法,同时要求按字符串长度进行排序,下面用less_than函数实现两字符串小于、等于操作:

bool less_than( const string & s1, const string & s2 )

{

return s1.size() < s2.size();

}

然后将函数指针less_than作参数传递给stable_sort,实现排序操作。传递函数指针也同时舍弃了inline,要知道使用inline的函数会在编译时被展开,编译完成后inline函数中的代码直接被“嵌入”当前调用它的块语句中,程序运行时直接执行less_than函数中代码,而不是像调用一般函数时,首先寻找函数地址,然后调用其中代码。如何实现inline函数?最简单的是做一个函数对象(stable_sort可以接受函数指针和对象参数),注意到()操作符被重载,实现比较功能,同时也保留了inline特性:

// 函数对象:小于操作被实现为operator()的一个实例

class LessThan {

public:

??? bool operator() { const string & s1, const string & s2 ) { return s1.size() < s2.size(); }

};

?

分享到:
评论

相关推荐

    c++ primer 泛型算法 经典

    这些是关于c++ primer的练习题和 测试题 ,自己感觉还不错 大家可以看看

    C++ Primer学习笔记——$11 泛型算法

    在C++编程中,泛型算法是标准库提供的强大工具,它们可以应用于各种不同类型的容器,无论容器内部存储的数据类型如何。这些算法不依赖于特定的容器实现,而是通过迭代器来操作容器中的元素,因此具有高度的通用性。...

    C++Primer第11章-泛型算法-课后习题答案[收集].pdf

    在C++编程中,泛型算法是用于处理各种不同数据结构(如数组、向量、列表等)的一组通用函数,这些函数不依赖于特定的数据类型。本篇内容主要涉及了两个重要的泛型算法——`count`和`accumulate`,以及如何在实际编程...

    C++ Primer 5th 英文高清版 (带完整目录)

    《C++ Primer 5th》是C++编程领域的一部权威著作,由Lippman、Lajoie和 Moo三位专家合著。这本书以其深入浅出的讲解方式和丰富的实例,深受程序员们的喜爱。5th版更是针对C++11、C++14和C++17标准进行了全面更新,...

    C++ Primer第四版【中文高清扫描版】.pdf

    9. 泛型算法的使用,如只读算法、写容器元素的算法和对容器元素重新排序的算法。 10. 类的定义、构造函数、复制控制、重载操作符、继承和多态等面向对象编程的核心概念。 11. 模板与泛型编程,包括函数模板、类模板...

    C++Primer 习题解答(第4版)--绝对完整版

    3. **模板与泛型编程**:C++ Primer 习题解答详尽解释了模板的概念,包括函数模板和类模板,以及模板特化和模板元编程。泛型编程让代码具有更好的可复用性,是C++程序员必须掌握的技术。 4. **标准库的使用**:书中...

    c++ primer plus 答案 c++ primer plus 答案

    在阅读《C++ Primer Plus》并参考答案的过程中,重要的是不仅要了解每个练习的解决方案,还要理解为什么这样解决,以便将学到的知识应用到实际编程项目中。此外,实践编程是巩固理论知识的最好方式,所以动手编写...

    C++Primer Plus附录源码等文件.zip

    《C++ Primer Plus》是Stephen Prata撰写的一本广受欢迎的C++编程教材,第六版提供了深入浅出的C++语言教程,旨在帮助初学者和有一定经验的程序员掌握这一强大的编程语言。附录中的源码文件是作者为配合书中的教学...

    C++Primer习题集第五版 pdf

    C++ Primer习题集 第5版-Stanley B. Lippman_高清版[带完整书签目录] 【作 者】(美)李普曼,(美)拉乔伊,(美)默著 【出版发行】 北京:电子工业出版社 , 2015.03 【ISBN号】978-7-121-25229-7 【页 数】 520 ...

    C++ Primer(Fifth Edition)(英文版+中文版)

    总之,《C++ Primer (Fifth Edition)》是一本全面而深入的C++教程,通过阅读这本书,读者不仅能理解C++的基本语法,还能掌握高级特性,并了解现代C++编程的最佳实践。无论你是想自学C++,还是作为参考手册,这本书都...

    c++ primer 第5版 英文版 原版精美排版 mobi格式 kindle直读

    《C++ Primer》是C++编程领域的一本经典著作,第五版更是深受程序员喜爱的教程。这本书详尽地介绍了C++语言,从基础语法到高级特性,为读者提供了全面而深入的学习路径。作为英文版,它保持了原汁原味的专业表达,...

    C++ Primer(第5版)_带书签_高清完整版

    《C++ Primer(第5版)》是一本深入学习C++编程语言的经典教材,由Lippman、Lajoie和 Moo三位资深C++专家合著。这本书覆盖了C++的基础到高级特性,包括面向对象编程、泛型编程以及C++11及后续标准的新特性。以下是对...

    C++ Primer编程习题集(第5版).pdf

    C++ Primer编程习题集(第5版),有习题和编程代码,供自我检验使用

    C++Primer课后习题解答完整版.pdf

    6. C++标准库:文件提到了C++标准库类型,如标准输入输出库,标准库类型在C++程序中提供了一系列基础的工具和功能,如输入输出流、标准容器、泛型算法等。 7. 关键概念理解:文件内容中还包含了对一些关键概念的...

    C++Primer课程详细视频讲解

    该视频是关于C++ Primer 这本书的猎豹详细视频初级高级讲解 该视频是关于C++ Primer 这本书的猎豹详细视频初级高级讲解 该视频是关于C++ Primer 这本书的猎豹详细视频初级高级讲解 该视频是关于C++ Primer 这本书的...

    C++primer第四版源代码

    《C++ Primer》第四版是C++编程领域的一本经典教材,由Lippman, Lajoie, and Moo三位作者合著。这本书深入浅出地介绍了C++语言的基础知识、中级概念以及高级特性,旨在帮助读者掌握现代C++编程技术。源代码文件包含...

    C++ primer Plus的pdf资源

    C++ primer Plus的pdf资源

Global site tag (gtag.js) - Google Analytics