随笔分类 -  02_C++&C

摘要:我之前的博文中有专门的5篇整理并介绍了STL的概念: STL1——整体介绍:https://www.cnblogs.com/grooovvve/p/10467794.html STL2——泛型编程(模板类、迭代器):https://www.cnblogs.com/grooovvve/p/104677 阅读全文
posted @ 2019-09-22 15:29 Grooovvve 阅读(267) 评论(0) 推荐(0)
摘要:普通队列是一个先进先出的数据结构,元素在队尾添加,在队头删除。 优先队列的出队逻辑相比于普通队列发生了改变,具有最高优先级的元素先出队。 在C++中只要包含了#include<queue>就可以使用优先队列这个数据结构priority_queue; 优先队列包含了普通队列的所有操作。只是在这个基础上 阅读全文
posted @ 2019-09-22 13:33 Grooovvve 阅读(145) 评论(0) 推荐(0)
摘要:面试中可能会问到交换两个变量的值有几种实现方式,对这方面有一定了解还是有必要的,简单罗列一下几种方式,具体介绍查看参考链接: 1、中间变量;->这个最常见了 2、加减法; 3、异或法; 4、swap函数;->实际上是使用了库函数 参考链接: https://www.cnblogs.com/didia 阅读全文
posted @ 2019-08-14 23:51 Grooovvve 阅读(118) 评论(0) 推荐(0)
摘要:当一个项目越来越大,代码该如何组织?C++组织程序的策略是什么?遇到类、变量、函数的重名问题该如何解决? 单独编译: 首先C/C++鼓励程序员把组件函数放在多个独立的文件中,这是因为编译器可以单独编译这些文件,然后将它们链接成可执行的程序。 这是因为如果你修改了一个文件,那么可以只重新编译该文件,然 阅读全文
posted @ 2019-07-18 10:43 Grooovvve 阅读(274) 评论(0) 推荐(0)
摘要:经过前面两个Review,对代码复用,类的继承概念有了进一步理解。 这里再做一次复盘,把其他概念也串联起来构成一个知识框架。 首先是类和对象的概念。对象指的是特征与技能的结合体,面向对象编程思想的好处是提高了程序的扩展性,可维护与可读性都变得更好。 类在构造时要考虑内存的动态分配问题,也有了构造函数 阅读全文
posted @ 2019-07-17 23:54 Grooovvve 阅读(164) 评论(0) 推荐(0)
摘要:C++的一个重要目的是实现代码重用。 有哪些机制可以实现这个目标呢? 1、公有继承——is a的关系 2、包含 (新的类包含另一个类的对象)——has a的关系 3、私有继承/保护继承——has a的关系 4、多重继承 5、类模板 公有继承 包含 每当某个类包含另一个类的对象作为其成员变量之一时,就 阅读全文
posted @ 2019-07-17 00:03 Grooovvve 阅读(180) 评论(0) 推荐(0)
摘要:继承是实现多态的基础。虚函数是实现多态的方法。虚函数、多态、继承都是紧密相关的概念。而继承是所有概念的基础; 多态:简单来讲就是接口一样,实现多样。多态是指通过基类的指针或者引用,在运行时动态调用实际绑定对象函数的行为。与之相对应的编译时绑定函数称为静态绑定。多态是面向对象编程的核心思想之一。多态还 阅读全文
posted @ 2019-07-16 20:02 Grooovvve 阅读(147) 评论(0) 推荐(0)
摘要:了解C++之后,可以阅读一些高级主题和面向对象编程相关的书籍; OOP有助于开发大型的项目,并提高其可靠性; OOP方法的基本活动之一就是发明能够模拟当前情况的类。当前情况被统称为问题域。 由于实际问题通常很复杂,因此找到适当的类非常富有挑战性; 创建复杂系统时,从空白开始通常不可行,最好采用逐步迭 阅读全文
posted @ 2019-03-25 00:10 Grooovvve 阅读(276) 评论(0) 推荐(0)
摘要:大多数计算机程序都使用了文件。文件本身是存储在某种设备上的一系列字节。 通常,操作系统管理文件,跟踪它们的位置、大小、创建时间等。 除非在操作系统级别上编程,否则通常不必担心这些事情。 真正需要的是将程序与文件相连的途径、让程序读取文件内容的途径以及让程序创建和写入文件的途径。 C++ I/O类软件 阅读全文
posted @ 2019-03-08 00:54 Grooovvve 阅读(441) 评论(0) 推荐(0)
摘要:通过键盘输入和屏幕输出被称为是控制台输入/输出; 更广义上讲控制台的输入/输出也是一种特殊的文件输入/输出; 当使用cin进行输入时,程序将输入视为一系列的字节,其中的每个字节都被解释成字符编码; 不管目标数据是什么,输入一开始都是字符数据——文本数据。 然后根据用户提供的目标数据类型,cin对象负 阅读全文
posted @ 2019-03-08 00:52 Grooovvve 阅读(241) 评论(0) 推荐(0)
摘要:接下来讨论的是如何给程序提供数据? cin对象将标准输入表示为字节流。 通常情况下是通过键盘来生成这种字节流 cin对象根据接收值得变量类型,使用其方法将字符序列转换为所需的类型。 cin>>value_holder; cin解释输入的方式取决于value_holder的数据类型;value_hol 阅读全文
posted @ 2019-03-08 00:51 Grooovvve 阅读(847) 评论(0) 推荐(0)
摘要:C++将输出流看作是字节流,在程序中,很多数据被组织成比字节更大的单位。 例如int类型由16位或者32位的二进制值表示;double值由64位的二进制数据表示; 但是在将字节流发送给屏幕时,希望每个字节表示一个字符。 举个例子:要在屏幕上显示数字-2.34时,需要5个字符(- 2 . 3 4)。 阅读全文
posted @ 2019-03-08 00:50 Grooovvve 阅读(577) 评论(0) 推荐(0)
摘要:为了方便起步先从istream类对象cin和ostream类对象cout开始,了解输入和输出的基本方法; 同时使用ifstream和ofstream对象进行文件的输入和输出; 然后详细学习cin和cout类,看看它们是如何设计的?学习如何控制输出格式 用于文件输入和输出的C++工具都是基于cin和c 阅读全文
posted @ 2019-03-08 00:47 Grooovvve 阅读(190) 评论(0) 推荐(0)
摘要:名称空间 背景:C++中,名称可以是变量、函数、结构、枚举、类以及类和结构的成员。当随着项目的增大,名称相互冲突的可能性也将增加。例如许多厂商的类库,可能导致名称冲突。这种冲突被称为名称空间问题。 解决措施:C++标准提供了名称空间工具;以便更好地控制名称的作用域。 传统的C++名称空间 介绍一些术 阅读全文
posted @ 2019-03-08 00:45 Grooovvve 阅读(160) 评论(0) 推荐(0)
摘要:C++为在内存中存储数据提供了多种选择: 可以选择数据保留在内存中的时间长度(存储持续性); 程序的哪一部分可以访问数据(作用域和链接); 可以使用new来动态地分配内存;定位new运算符提供了这种技术的变种; C++名称空间是另一种控制访问权的方式; 通常大型程序都由多个源代码文件组成,这些文件可 阅读全文
posted @ 2019-03-08 00:44 Grooovvve 阅读(309) 评论(0) 推荐(0)
摘要:这一部分截取自《C++ Primer Plus》,内容比较简单,很多只取了一些主题关键词,有空再补充; 设计智能程序的一个关键是使程序具有决策能力。 前面一种方式是循环——程序决定是否继续循环。 接下来研究使用分支语句在可选择的操作中做出决定。 条件运算符——提供了另一种决策方式; 逻辑运算符——允 阅读全文
posted @ 2019-03-08 00:43 Grooovvve 阅读(392) 评论(0) 推荐(0)
摘要:这一部分内容节选自《C++ Primer Plus》的第五章 程序需要有执行重复的操作和进行决策的工具。 5.1 for循环 初始化、循环测试、循环体、循环更新 5.1.1 for循环的组成部分 for循环为执行重复的操作提供了循序渐进的步骤: 设置初始值 执行测试,看看循环是否应当继续进行 执行循 阅读全文
posted @ 2019-03-08 00:40 Grooovvve 阅读(352) 评论(0) 推荐(0)
摘要:C语言使用术语“派生类型”,C++对类关系使用术语“派生”。所以就改用“复合类型”。 数组 数组是一种数据格式,能够存储多个同类型的值。 数组声明应指出以下三点: 存储在每个元素中的值的类型; 数组名; 数组中的元素数; 通用的声明格式: typeName arrayName[arraysize]; 阅读全文
posted @ 2019-03-08 00:38 Grooovvve 阅读(1034) 评论(0) 推荐(0)
摘要:面向对象(OOP)的本质是设计并扩展自己的数据类型。设计自己的数据类型就是让类型与数据匹配。 如果正确做到这一点,就会发现以后使用数据会容易很多。然而创建自己的类型之前,必须了解并理解C++内置类型。这些类型是创建自己类型的基本组件。 内置C++类型分两组:基本类型和复合类型。 基本类型:整数和浮点 阅读全文
posted @ 2019-03-08 00:37 Grooovvve 阅读(528) 评论(0) 推荐(0)
摘要:智能指针是行为类似于指针的类对象,但这种对象还有其他功能。 本节介绍三个可帮助管理动态内存分配的智能指针模板(auto_ptr、unique_ptr和shared_ptr)。 void remodel(std:string & str) { std::string * ps = new std::s 阅读全文
posted @ 2019-03-08 00:36 Grooovvve 阅读(851) 评论(0) 推荐(0)