
C/C++
文章平均质量分 92
C/C++相关技术博客
zzy979
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《C++程序设计原理与实践》笔记 第21章 算法和映射
本章将完成我们对STL基本思想及其所提供的功能的介绍。本章重点关注算法。原创 2023-09-25 01:49:47 · 382 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第20章 容器和迭代器
本章和下一章将介绍STL,即C++标准库的容器和算法部分。关键概念序列和迭代器用于将容器(数据)和算法(处理)联系在一起。原创 2023-07-15 17:19:56 · 534 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第19章 向量、模板和异常
本章将完成最常见、最有用的STL容器`vector`的设计与实现。我们将展示如何实现元素数量可变的容器,如何以参数形式指定容器的元素类型,以及如何处理越界错误。本章使用的技术依赖模板和异常,因此我们将介绍如何定义模板,并给出资源管理的基本技术,这些技术是正确使用异常的关键。原创 2023-06-16 00:30:58 · 788 阅读 · 0 评论 -
【C++】右值引用、移动语义和完美转发
在C++中,如果一个类获取了资源,则需要定义拷贝构造函数和拷贝赋值运算符以确保资源被正确地拷贝。然而,在某些情况下会存在不必要的拷贝,影响程序性能。为了解决这一问题,C++11引入了移动语义。本文首先介绍C++的左值和右值及其引用,之后介绍移动语义及其实现。原创 2023-06-02 01:50:58 · 811 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第18章 向量和数组
本章将介绍如何拷贝以及通过下标访问向量。为此,我们讨论一般的拷贝技术,并考虑向量与底层数组表示之间的关系。我们将展示数组与指针的关系及其使用引发的问题。我们还将讨论对于每种类型必须考虑的五种基本操作:构造、默认构造、拷贝构造、拷贝赋值和析构。另外,容器还需要移动构造函数和移动赋值。原创 2023-05-28 11:54:48 · 1206 阅读 · 0 评论 -
Blade项目的IDE支持
Blade是一个C/C++构建工具,详细介绍见。虽然功能强大,但是缺少IDE支持。本文介绍如何在Blade项目中使用IDE的智能提示、自动补全、自动跳转等特性。原创 2023-04-25 10:20:43 · 1454 阅读 · 1 评论 -
《C++程序设计原理与实践》笔记 第17章 向量和自由存储
本章和后面四章介绍C++标准库的容器和算法部分(通常称为STL)。本章和后面两张的重点是最常用、最有用的STL容器——向量的设计和实现。原创 2023-04-22 21:58:03 · 880 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第16章 图形用户界面
图形用户界面(graphical user interface, GUI)允许用户通过点击按钮、选择菜单、以不同的方式输入数据以及在屏幕上显示文本和图形等方式与程序进行交互。在本章中,我们将介绍编写代码来定义和控制GUI应用的基本方法。原创 2023-04-09 15:53:48 · 4131 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第15章 绘制函数图和数据图
本章讨论绘制函数图和数据图的基本机制。关键例子是绘制一元函数图像,以及展示从文件中读取的值。原创 2023-03-20 00:39:11 · 3125 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第14章 设计图形类
本章借助图形接口类介绍接口设计的思想和继承的概念。为此,本章将介绍与面向对象程序设计直接相关的语言特性:类派生、虚函数和访问控制。原创 2023-03-06 01:49:03 · 824 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第13章 图形类
第12章介绍了如何使用一组简单的接口类创建图形。本章将介绍每个接口类的设计、使用和实现。原创 2023-02-13 01:10:11 · 763 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第12章 一个显示模型
本章介绍了一个显示模型(display model)(GUI的输出部分),并给出了使用示例和基本概念,例如屏幕坐标、线和颜色等。原创 2023-02-01 00:33:33 · 1066 阅读 · 2 评论 -
《C++程序设计原理与实践》笔记 第11章 定制输入/输出
在本章中,我们重点关注如何使第10章中介绍的通用iostream框架适配特定的需求和偏好。原创 2023-01-25 00:32:12 · 1463 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第10章 输入/输出流
在本章和下一章中,我们将介绍C++标准库中用于处理来自各种源的输入和输出的功能:I/O流。本章关注基本模型:如何读写单个值,以及如何打开和读写整个文件。下一章将介绍具体细节。原创 2023-01-14 02:24:54 · 911 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第9章 类相关的技术细节
在本章中,我们继续关注主要的程序设计工具——C++语言。本章主要介绍与用户自定义类型(即类和枚举)相关的语言技术细节。这些语言特性大部分是以逐步改进一个Date类型的方式来介绍的。采用这种方式,我们还可以顺便介绍一些有用的类设计技术。原创 2023-01-01 14:49:44 · 1128 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第8章 函数相关的技术细节
在本章和下一章中,我们将注意力从程序设计转移到主要的编程工具——C++语言上。我们会介绍一些语言的技术细节,来给出一个C++的基本功能的稍宽的视角,并从更系统化的角度讨论这些功能。原创 2022-12-24 23:43:43 · 451 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第7章 完成一个程序
编写程序需要不断地改进你要实现的功能及其表达方式。第6章给出了一个能够工作的计算器程序的最初版本,本章将对其进一步改进。“完成程序”意味着使程序更易于使用和维护——包括改进用户接口、做一些仔细的错误处理工作、增加一些有用的特性、重构代码使之易于理解和修改。原创 2022-10-30 02:49:06 · 715 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第6章 编写一个程序
接下来的两章将从一个最初不清晰的想法开始,经过分析、设计、实现、测试、再设计、再实现等步骤开发一个计算器程序,目的是帮助读者了解在编写代码的过程中如何去思考。在这个过程中将讨论程序结构、用户定义类型和输入处理。原创 2022-10-16 16:00:02 · 1070 阅读 · 0 评论 -
C++重定义问题
C++支持声明和定义分离,通常的做法是将声明放在头文件中、定义放在源文件中,通过包含头文件来引入声明。多次声明一个变量或函数不会有问题,但多次定义则会导致重定义错误。下面在两种不同场景下进行分析。原创 2022-10-12 22:40:23 · 4346 阅读 · 0 评论 -
GoogleTest使用教程
GoogleTest是由Google开发的一个C++测试框架,支持Linux、Windows和macOS操作系统,使用Bazel或CMake构建工具。原创 2022-10-06 15:08:10 · 12546 阅读 · 11 评论 -
《C++程序设计原理与实践》笔记 第5章 错误
本章将讨论程序的正确性、错误和错误处理。原创 2022-09-25 00:44:25 · 1476 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第4章 计算
本章将介绍一些与计算相关的基本概念。原创 2022-08-26 00:09:30 · 1464 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第3章 对象、类型和值
本章介绍程序中的数据存储和使用的基本知识。原创 2022-08-06 21:20:48 · 531 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第2章 Hello, World!
为了使计算机能够做某件事,你需要在繁琐的细节上明确告诉它怎么做。对“怎么做”的描述称为(program),(programming)是书写和测试这个程序的行为。为了向计算机精确描述这些事情,我们需要一种由特定语法精确定义的语言,这种语言称为,C++是为各种编程任务而设计的编程语言。..................原创 2022-07-31 23:36:21 · 685 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 第0章 致读者
我们认为程序设计本身是问题求解的一种描述形式只有完全理解了一个问题及其求解方案,你才能用程序来正确表达它;而只有通过构造和测试一个程序,你才能确定你对问题和求解方案的理解是完整的、正确的。知其所以然是学会程序设计技巧所必需的。相反,仅仅不求甚解地记住大量规则和语言特性有很大局限,是错误之源,也是在浪费时间。如果你学习中略过一些细节,将来可能偶尔会因为缺少相关知识而被“灼伤”,但这是获取编写好程序所需完整知识结构的最快途径。我们的目标是,回答那些你在编写供他人使用的高质量软件时需要考虑的问题。........原创 2022-07-30 23:33:26 · 365 阅读 · 0 评论 -
《C++程序设计原理与实践》笔记 目录
C++程序设计原理与实践》(Programming–PrinciplesandPracticeUsingC++)(第1版)原创 2022-07-21 23:45:17 · 1045 阅读 · 0 评论 -
《C程序设计语言》笔记 第7章 输入与输出
本章讲讲述标准库,介绍输出/输出、字符串处理、存储管理与数学函数以及其他一些服务的函数。本章的重点将放在输入/输出上。原创 2022-06-02 23:00:09 · 818 阅读 · 0 评论 -
《C程序设计语言》笔记 第6章 结构
结构(structure)是一个或多个变量的集合,这些变量可能是不同的类型,为了方便处理而组织在一个名字之下。由于结构将一组相关的变量看作一个单元而不是各自独立的实体,因此结构有助于组织复杂的数据,特别是在大型程序中。结构的一个传统例子是工资记录:每个雇员由一组属性描述,如姓名、地址、社会保险号、工资等。其中的某些属性也可以是结构,例如姓名可以分成几部分,地址甚至工资也可能是这样。C语言中更典型的一个例子来自图形学:点由一对坐标定义,矩形由两个点定义,等等。ANSI标准在结构方面最主要的变化是定义了结构原创 2022-05-23 22:50:01 · 1201 阅读 · 0 评论 -
【C++】二维数组的行指针和列指针
在C++中,数组与指针有密切的关系。任何通过数组和下标实现的表达式可等价地通过指针和偏移量实现。下面首先介绍一维数组与指针的关系,之后介绍二维数组的行指针和列指针。原创 2022-05-11 01:32:14 · 15787 阅读 · 15 评论 -
《C程序设计语言》笔记 第5章 指针与数组
指针(pointer)是一种保存变量地址的变量。在C语言中,指针的使用非常广泛。一个原因是,指针有时是表达某个计算的唯一途径;另一个原因是,同其他方法比起来,使用指针可以生成更紧凑、更高效的代码。指针与数组之间的关系十分密切,本章将讨论它们之间的关系,并探讨如何利用这种关系。指针和goto语句一样,会导致程序难以理解。如果使用者粗心,指针很容易就指向了错误的地方。但是,如果谨慎地使用指针,便可以利用它写出简单、清晰的程序。5.1 指针与地址5.2 指针与函数参数5.3 指针与数组5.4 地址算术运原创 2022-04-26 22:09:13 · 3212 阅读 · 3 评论 -
《C程序设计语言》笔记 第4章 函数与程序结构
函数可以把大的计算任务分解成若干个较小的任务,使得程序设计人员可以基于他人已完成的工作编写程序,而不是从零开始。一个设计得当的函数可以把程序中不需要了解的具体操作细节隐藏起来,从而使整个程序结构更加清晰,并降低修改的难度。C语言程序一般由许多小的函数组成,而不是由少量较大的函数组成。4.1 函数的基本知识4.2 返回非整型值的函数4.3 外部变量4.4 作用域规则4.5 头文件4.6 静态变量4.7 寄存器变量4.8 程序块结构4.9 初始化4.10 递归4.11 C预处理器4.1原创 2022-04-05 10:31:36 · 1808 阅读 · 0 评论 -
《C程序设计语言》笔记 第3章 控制流
3.1 语句与程序块在表达式之后加上一个分号就变成了语句(statement)(表达式语句)。例如:x = 0;i++;printf("Hello, world\n");在C语言中,分号是语句结束符。用一对花括号把一组声明和语句括在一起就构成了一个复合语句(compound statement),也叫作程序块(block)。复合语句在语法上等价于单条语句。 例如函数体,以及if、else、while和for之后的语句。右花括号用于结束程序块,其后不需要分号。3.2 if-else语句if-原创 2022-03-26 21:17:41 · 748 阅读 · 0 评论 -
《C程序设计语言》笔记 第2章 类型、运算符与表达式
变量和常量是程序处理的两种基本数据对象。声明语句说明变量的名字及类型,也可以指定变量的初值。运算符指定要对变量进行的操作。表达式把变量与常量组合起来生成新的值。本章将详细讲述这些内容。2.1 变量名名字可以由字母、数字或下划线("_")组成,必须以字母或下划线开头,区分大小写。if、for、int等关键字不能用作变量名。习惯上,变量名使用小写字母,符号常量名全部使用大写字母。变量名要尽量能够从字面上表达变量的用途。局部变量一般使用较短的变量名(循环控制变量习惯上使用i、j等),外部变量使用较长的名字原创 2022-02-24 23:31:46 · 2096 阅读 · 0 评论 -
《C程序设计语言》笔记 第1章 导言
本章将重点介绍一些基本概念,比如常量与变量、算术运算、控制流、函数、基本输入/输出等。本章是后续各章详细讲解的内容的框架。1.1 入门1.2 变量与算术表达式1.3 for语句1.4 符号常量1.5 字符输入/输出1.5.1 文件复制1.5.2 字符计数1.5.3 行计数1.5.4 单词计数1.6 数组1.7 函数1.8 参数——传值调用1.9 字符数组1.10 外部变量与作用域......原创 2022-02-03 00:47:51 · 2456 阅读 · 0 评论 -
《C程序设计语言》笔记 目录
图书链接:https://book.douban.com/subject/1139336/为什么要写这些笔记第一次阅读《C程序设计语言》这本书是6年多前。大一之前的暑假,出于对编程的兴趣,买来这本书想自学一下C语言。那时是我第一次接触C语言,当时还完全不懂二进制、内存这些计算机基础知识,也完全没用过Linux命令行,因此不能完全理解书中的一些内容(例如2.9按位运算符、5.10命令行参数等)。现在已经毕业工作,但是在开发中时常会遇到基础知识想不起来的情况,比如两个结构体变量能不能比较,虚函数被覆盖之后是原创 2022-02-03 00:47:04 · 1197 阅读 · 0 评论 -
GCC编译器的使用方法
编译流程GCC编译器在编译C代码时需要经过以下4个步骤:预处理(preprocessing):对.c源文件进行预处理(头文件展开和宏替换),生成.i文件编译(compilation):对.i文件进行编译,生成.s汇编文件汇编(assembly):对.s文件进行汇编,生成.o目标文件链接(linking):将.o文件与库文件进行链接,生成可执行文件gcc命令使用命令格式使用man gcc可查看gcc命令的常用选项:gcc [-c|-S|-E] [-std=standard] [-原创 2022-02-03 00:45:39 · 8772 阅读 · 0 评论