
cpp_primer
文章平均质量分 92
C++ Primer学习笔记
EdSheeran乀
一个在编程路上慢慢前进的小菜鸡~
展开
-
19.特殊工具与技术
某些应用程序对内存分配有特殊的需求,需要自定义内存分配的细节,比如使用new将对象放置在特定的内存空间中。因此,需要重载new和delete运算符以控制内存分配的过程。原创 2023-03-16 16:01:38 · 601 阅读 · 1 评论 -
18.用于大型程序的工具
异常处理机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理。原创 2023-03-04 16:42:41 · 1894 阅读 · 0 评论 -
17.标准库特殊设施
tuple(定义在tuple头文件中)是类似pair的模板。不同tuple类型的成员类型也不相同,但一个tuple可以有任意数量的成员。每个确定的tuple类型的成员数目是固定的,但一个tuple类型的成员数目可以与另一个tuple类型不同。当希望将一些数据组合成单一对象,但又不想麻烦地定义一个新数据结构来表示这些数据时,tuple是非常有用的。原创 2023-02-27 16:39:16 · 363 阅读 · 0 评论 -
16.模板与泛型编程
模板是创建类或函数的蓝图或者说公式,需要提供足够的信息,将蓝图转换为特定的类或函数。这种转换发生在编译时。原创 2023-02-22 15:23:43 · 1300 阅读 · 0 评论 -
15.面向对象程序设计
面向对象程序设计基于三个基本概念:数据抽象、继承和动态绑定。原创 2023-02-09 15:30:29 · 1578 阅读 · 0 评论 -
14.重载运算与类型转换
重载的运算符由关键字operator和其后要定义的运算符号共同组成,同时包含返回类型、参数列表以及函数体。其参数数量与该运算符作用的运算对象数量一样多。例如,一元运算符有一个参数,二元运算符有两个。除了重载的函数调用运算符operator()之外,其他重载运算符不能包含有默认实参。当一个重载的运算符是成员函数时,this绑定到左侧运算对象。成员运算符函数的(显式)参数数量比运算对象的数量少一个。原创 2023-01-30 16:39:33 · 1276 阅读 · 0 评论 -
13.拷贝控制
拷贝控制操作:拷贝构造函数和移动构造函数定义了当用同类型的另一个对象初始化本对象时做什么。拷贝赋值运算符和移动赋值运算符定义了将一个对象赋予同类型的另一个对象时做什么。析构函数定义了当此类型对象销毁时做什么。原创 2023-01-17 15:51:05 · 774 阅读 · 1 评论 -
12.动态内存
每个程序拥有一个内存池,被称作自由空间(free store)或堆(heap)。程序用堆来存储动态分配的对象,即,那些在程序运行时分配的对象。动态对象的生存期由程序来控制,也就是说,当动态对象不再使用时,代码必须显式地销毁它们。原创 2023-01-05 15:26:12 · 1299 阅读 · 0 评论 -
11.关联容器
类型map和multimap定义在头文件map中;set和multiset定义在头文件set中;无序容器则定义在头文件unordered_map和unordered_set中。原创 2022-12-14 15:59:03 · 1194 阅读 · 0 评论 -
10.泛型算法
大多数算法都定义在头文件algorithm中。标准库还在头文件numeric中定义了一组数值泛型算法。一般情况下,这些算法并不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作。原创 2022-12-11 14:55:55 · 1159 阅读 · 0 评论 -
9.顺序容器
文章目录*顺序容器**9.1顺序容器概述**确定使用哪种顺序容器**9.2容器库概览**9.2.1迭代器**迭代器范围**使用左闭合范围蕴含的编程假定**9.2.4容器定义和初始化**将一个容器初始化为另一个容器的拷贝**列表初始化**标准库`array`具有固定大小**9.2.5赋值和`swap`**使用`assign`(仅顺序容器)**使用`swap`**9.2.7关系运算符**容器的关系运算符使用元素的关系运算符完成比较**9.3顺序容器操作**9.3.1向顺序容器添加元素**使用`emplace`操原创 2022-01-04 21:27:00 · 568 阅读 · 0 评论 -
8.IO库
文章目录*`IO`库**8.1`IO`类**8.1.1`IO`对象无拷贝或赋值**8.1.2条件状态**查询流的状态**管理条件状态**8.1.3管理输出缓冲**刷新输出缓冲区**`unitbuf`操纵符**关联输入和输出流**8.2文件输入输出**8.2.1使用文件流对象**用`fstream`代替`iostream&`**成员函数`open`和`close`**自动构造和析构**8.2.2文件模式**以`out`模式打开文件会丢弃已有数据**每次调用`open`时都会确定文件模式**8.3`st原创 2021-12-09 20:22:23 · 1587 阅读 · 0 评论 -
7.C++中的类
文章目录*C++中的类**7.1定义抽象数据类型**7.1.2定义改进的`Sales_data`类**定义成员函数**引入`this`**引入`const`成员函数**类作用域和成员函数**在类的外部定义成员函数**定义一个返回`this`对象的函数**7.1.3定义类相关的非成员函数**定义`read`和`print`函数**定义`add`函数**7.1.4构造函数**合成的默认构造函数**某些类不能依赖于合成的默认构造函数**定义`Sales_data`的构造函数**`= default`的含义**构造原创 2021-12-06 20:21:25 · 1851 阅读 · 0 评论 -
6.函数介绍
文章目录*函数**6.1函数基础**形参和实参**6.1.1局部对象**自动对象**局部静态对象**6.1.2函数声明**在头文件中进行函数声明**6.1.3分离式编译**6.2参数传递**6.2.1传值参数**指针形参**6.2.2传引用参数**使用引用避免拷贝**使用引用形参返回额外信息**6.2.3`const`形参和实参**指针或引用形参与`const`**尽量使用常量引用**6.2.4数组形参**使用标记指定数组长度**适用标准库规范**显式传递一个表示数组大小的形参**数组引用和形参**传递多维原创 2021-11-30 20:22:53 · 908 阅读 · 0 评论 -
5.语句和异常
文章目录*语句**5.3条件语句**5.3.2`switch`语句**`switch`内部的变量定义**5.4迭代语句**5.4.3范围`for`语句**5.6`try`语句块和异常处理**5.6.1`throw`表达式**5.6.2`try`语句块**编写处理代码**函数在寻找处理代码的过程中退出**提示:编写异常安全的代码非常困难**5.6.3标准异常*语句5.3条件语句5.3.2switch语句switch内部的变量定义switch的执行流程有可能会跨过某些case标签。如果程序跳转到了某原创 2021-08-11 22:02:27 · 1087 阅读 · 1 评论 -
4.表达式
文章目录*表达式**4.1基础**4.1.1基本概念*左值和右值*4.1.3求值顺序**4.2算数运算符**4.5递增和递减运算符**在一条语句中混用解引用和递增运算符**4.6成员访问运算符**4.7条件运算符**4.8位运算符**移位运算符*4.9`sizeof`运算符*4.10逗号运算符**4.11类型转换**4.11.2其他隐式类型转换**4.11.3显式转换**命名的强制类型转换*表达式表达式由一个或多个运算对象组成,对表达式求值将得到一个结果。字面值和变量是最简答的表达式,其结果就是字面值原创 2021-08-11 21:46:41 · 697 阅读 · 1 评论 -
3.字符串、向量和数组
文章目录*字符串、向量和数组**3.1命名空间的`using`声明**头文件不应包含`using`声明**3.2标准库类型`string`**3.2.1定义和初始化`string`对象**直接初始化和拷贝初始化**3.2.2`string`对象上的操作**`string::size_type`类型**字面值和`string`对象相加**3.2.3处理`string`对象中的字符**3.3标准库类型`vector`**3.3.1定义和初始化`vector`对象**3.3.2向`vector`对象中添加元素**原创 2021-08-10 15:37:05 · 1681 阅读 · 0 评论 -
2.变量和基本类型
文章目录*变量和基本类型**2.1基本内置类型**2.1.1算数类型**2.1.2类型转换**含有无符号类型的表达式**2.1.3字面值常量**字符和字符串字面值**指定字面值的类型**布尔字面值和指针字面值**2.2变量**2.2.1变量定义**初始值**列表初始化**2.2.2变量声明和定义的关系**2.3复合类型**2.3.1引用**引用即别名**2.3.2指针**空指针**其他指针操作**`void*`指针**2.3.3理解复合类型的声明**指向指针的引用**2.4`const`限定符(重点,并不是原创 2021-08-10 10:37:35 · 388 阅读 · 0 评论 -
1.C++开始
文章目录*开始**1.2初识输入输出**标准输入输出对象*开始1.2初识输入输出标准输入输出对象标准库定义了4个I/O对象:为了处理输入,使用一个名为cin的istream类型的对象,也被称为标准输入。对于输出,使用一个名为cout的ostream类型的对象。标准库还定义了其他两个ostream对象,名为cerr和clog。通常用cerr来输出警告和错误消息,因此也被称为标准错误。而clog用来输出程序运行时的一般性信息。系统通常将程序所运行的窗口与这些对象关联起来。因此,当读取cin原创 2021-08-08 17:36:01 · 137 阅读 · 0 评论