C/C++中peek函数的原理及应用
C++中的peek函数 该调用形式为cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)。 其功能是从输入流中读取一个字符 但该字符并未从输入流中删除 若把输入流比作一个 栈类 那么这里的peek函数就相当于栈的成员函数front 而如果cin.get()....
《深入理解Android:Telephony原理剖析与最佳实践》一2.5 使用Source Insight方便阅读C/C++代码
2.5 使用Source Insight方便阅读C/C++代码 Android源码中有非常多的C/C++代码,Source Insight是当前比较流行和方便使用的C/C++代码阅读编辑工具,我们选择它来建立Android C/C++代码相关的工程。Source Insight是基于Windows平台的C/C++代码编辑工具,要在Ubuntu平台上使用它,需要Wine工具的支持。 2.5.1 安....
C++程序设计:原理与实践(进阶篇)15.1 存储和处理数据
摘要 Programming: Principles and Practice Using C++, Second Edition 容器和迭代器 只做一件事,并把它做好。多个程序协同工作。 ——Doug McIlory 本章和下一章将分别介绍C++标准库(STL)中的容器和算法部分。STL是一个用于处理C++程序中数据的可扩展框架。我们首先通过一个简单的例子来说明STL的设计理念和基本概念,然.....
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++程序设计:原理与实践(进阶篇)16.2 最简单的算法f?ind()
16.2 最简单的算法f?ind() f?ind()可能是最简单但又很有用的算法,它在一个序列中查找一个给定值: 让我们看看f?ind()的定义。你自然可以无须了解f?ind()的确切实现细节就使用它——实际上,我们已经在前面的章节中使用过f?ind()了(例如15.6.2节)。但是,f?ind()的定义展示了很多有用的设计思想,因此了解其实现是有价值的。 首先,f?ind()对一个...
C++程序设计:原理与实践(进阶篇)16.1 标准库算法
摘要 Programming: Principles and Practice Using C++, Second Edition 算法和映射 理论上,实践是简单的。 ——Trygve Reenskaug 本章将完成我们对STL基本思想的介绍以及对STL所提供工具的纵览。在本章中,我们主要关注算法。我们的主要目的是给你介绍一些最有用的算法,它们能够节省你大量时间,即使达不到以月计,也能达到以天计....
C++程序设计:原理与实践(进阶篇)15.10 容器概览
15.10 容器概览 STL提供了一些容器: 标准容器 vector 连续存储的元素序列;应用作默认容器 list 双向链表;当你希望在不移动现有元素的情况下完成对元素的插入和删除时使用 deque list和vector的交叉;除非你对算法和计算机体系结构知识非常精通,否则不要使用它 map 平衡有序树;当你需要按值访问元素时使用它(参见16.6.1~16.6.3节) multimap 平衡.....
C++程序设计:原理与实践(进阶篇)15.9 调整内置数组达到STL版本的功能
15.9 调整内置数组达到STL版本的功能 我们之前反复指出内置数组的不足之处:它们动不动就会隐式转换成指针,它们不能通过赋值操作进行拷贝,它们不知道自己的大小(见13.6.2节),等等。我们也指出了它们最大的优点:它们近乎完美地利用了物理内存。 为了综合二者之长,我们可以创建一个具有数组优点而没有其不足的array容器。array的一个版本已经作为技术报告的一部分引入C++标准中。由于技术报.....
C++程序设计:原理与实践(进阶篇)15.8 调整vector类达到STL版本的功能
15.8 调整vector类达到STL版本的功能 在15.5节中为vector增加了begin()、end()和类型别名后,现在只差insert()和erase()就接近我们设计一个std::vector的近似版本的目标了: 我们还是使用指向元素类型的指针T*作为迭代器的类型,这是最简单的方法。我们将边界检查迭代器的实现留作练习(习题18)。 人们通常不会为元素连续存储的数据类型(如...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
C++更多原理相关
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
+关注