C++程序设计:原理与实践(进阶篇)16.4 函数对象
16.4 函数对象 因此,我们希望向f?ind_if()传递断言,同时希望断言能够将元素与以参数形式传递的值进行比较。特别地,我们希望能编写如下形式的代码: 显然,Larger_than必须满足如下条件: 能作为断言被调用,例如,pred(*f?irst); 能够存储一个数值,例如31或x,以备调用时使用。 为了满足这些条件,我们需要“函数对象”,即一种能够实现函数行为的对象。我们需...
C++程序设计:原理与实践(进阶篇)16.3 通用搜索算法f?ind_if()
16.3 通用搜索算法f?ind_if() 其实我们并没有那么经常地需要查找一个特定值。我们通常更感兴趣的是在序列中查找符合某种标准的值。如果能够允许我们自己定义查找标准,这样的f?ind操作就更为有用。例如,我们也许希望查找大于42的值,也许希望在不考虑大小写的情况下比较字符串,也许希望找到第一个奇数值,也许希望查找一个地址域值为“17 Cherry Tree Lane”的记录。 根据用户提.....
C++程序设计:原理与实践(进阶篇)15.7 vector、list和string
15.7 vector、list和string 为什么我们对行用list而对字符用vector呢?更准确地说,我们为什么要用list保存行的序列而用vector保存字符序列呢?再有,为什么不用string来存储一行呢? 我们可以把这些问题再一般化一些。到现在为止,我们知道了四种存储字符序列的方法: char[](字符数组); vector<char>; string; list&...
C++程序设计:原理与实践(进阶篇)15.5 再次泛化vector
15.5 再次泛化vector 显然,通过15.3~15.4节的例子我们发现,标准库vector包含一个iterator成员类型,以及begin()和end()成员函数(与std::list类似)。然而,我们并没有在第14章中为vector类提供这些成员。那么,对于不同类型的容器而言,它们究竟采用了什么方法,以使它们或多或少地能够在15.3节所介绍的STL泛型编程风格中相互替换使用?首先,我们.....
C++程序设计:原理与实践(进阶篇)15.4 链表
15.4 链表 下面让我们再回顾一下序列概念的图形表示: 将它与我们描绘vector内存结构的示意图相比较: 下标0本质上与迭代器v.begin()一样都指向同一个元素,并且下标v.size()与v.end()一样都指向最后一个元素之后的位置。 vector的元素在内存中是连续存储的。这并非STL序列概念所要求的特性,因此在STL中,很多算法在将一个元素插入两个已有元素...
C++程序设计:原理与实践(进阶篇)15.3 序列和迭代器
15.3 序列和迭代器 序列是STL中的核心概念。从STL的角度来看,数据集合就是一个序列。序列具有头部和尾部。我们可以对一个序列从头到尾进行遍历,对序列中的元素进行有选择的读写操作。我们利用一对迭代器来表示序列头部和尾部。迭代器(iterator)是一种可以标识序列中元素的对象。我们可以按照如下方式来看待一个序列: 这里的begin与end就是迭代器,它们标识了序列的头部和尾部。我...
C++程序设计:原理与实践(进阶篇)15.2 STL理念
15.2 STL理念 C++标准库为处理数据序列提供了一个专门的框架,称为STL。STL是标准模板库(Standard Template Library)的简称。STL是ISO C++标准库的部分,它提供了容器(例如vector、list和map)和通用算法(例如sort、f?ind和accumulate)。因此我们可以称vector这类对象为STL或标准库的一部分。标准库的其他部分,例如os.....
C++程序设计:原理与实践(进阶篇)15.1 存储和处理数据
Programming: Principles and Practice Using C++, Second Edition 容器和迭代器 只做一件事,并把它做好。多个程序协同工作。 ——Doug McIlory 本章和下一章将分别介绍C++标准库(STL)中的容器和算法部分。STL是一个用于处理C++程序中数据的可扩展框架。我们首先通过一个简单的例子来说明STL的设计理念和基本概念,然后详细讨....
《 C++程序设计:原理与实践(进阶篇.》导读
本节书摘来自华章出版社《 C++程序设计:原理与实践(进阶篇)》一书中作者[美] 本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup) 著 刘晓光 李忠伟 王刚 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 前 言 Programming: Principles and Practice Using C++, Second Edition 该死的鱼...
C++程序设计:原理与实践(进阶篇)17.8 让图形程序运行起来
17.8 让图形程序运行起来 我们已经看到了如何创建窗口以及如何在窗口中绘制各种各样的形状。在后续章节中,我们将会看到这些Shape类是如何定义的,以及它们更多的使用方法。 为了使这个图形程序运行起来,还需要其他程序的帮助。除了主函数中已有的代码外,我们还需要编译接口库代码,安装FLTK库(或者所使用的任何GUI系统),并将它与我们的代码正确地链接在一起,才能让这个图形程序运行起来。 我们可以.....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
C++更多实践相关
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
+关注