随笔分类 - C++学习笔记
摘要:128.Linux C 字符串函数 sprintf()、snprintf() 详解 1.sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中
阅读全文
摘要:127.nginx内存池创建和重置函数 #define NGX_MAX_ALLOC_FROM_POOL (ngx_pagesize - 1)//能从内存池中分配的最大的内存 1.小块大块内存分界 #define NGX_DEFAULT_POOL_SIZE (16 * 1024)//默认池子大小 #d
阅读全文
摘要:126.STL 之 空间配置器(allocator) 1.SGI 标准的空间配置器,std::allocator SGI也定义了一个符合部分标准,名为allocator的配置器,但是它自己不使用,也不建议我们使用,主要原因是效率不佳。 它只是把C++的操作符::operator new和::oper
阅读全文
摘要:# 125.C++中的size_t ## 1.size_t ●size_t是一些C/C++标准在stddef.h中定义的,size_t类型表示C中任何对象所能达到的最大长度,它是无符号整数 ●它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。size_t在32位系统上定义
阅读全文
摘要:# 122.lambda表达式 ## 1.Lambda表达式概述 Lambda表达式是现代C++在C++11和更高版本中的一个新的语法糖,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置
阅读全文
摘要:# 121.仿函数 ## 1.为什么要有仿函数 我们先从一个非常简单的问题入手,来了解为什么要有仿函数。 假设我们现在有一个数组,数组中存有任意数量的数字,我们希望能够统计出这个数组中大于 10 的数字的数量,你的代码很可能是这样的: ```C++ #include using namespace
阅读全文
摘要:# 120.C++谓词 ## 1.定义 C++中的谓词:返回值为bool类型的仿函数; 一元谓词:operator() 函数接收一个参数; 二元谓词:operator() 函数接收两个参数。 **补充**:**函数对象** 重载函数调用操作符的类,其对象常称为函数对象。 函数对象使用重载的小括号时,
阅读全文
摘要:# 119.C++中的heap ## 1.简介 要想真正了解堆,就需要先了解[二叉树](树和二叉树(Tree&Binary Tree))。 堆是所有树中最具有特点的树,因为它是用数组存储的,并且总是完全二叉树。 如果有一个关键码的集合K = {k~0~,k~1~, k~2~,…,k~n-1~}把它的
阅读全文
摘要:# 118.C++ 中的stack ## 1.stack的概念 ==先进后出的线性表。== 栈是一个STL中的容器适配器,在std命名空间中,它限制插入和删除都在一个位置上(栈顶上),底层是deque(双端队列)。 要使用stack,需要添加头文件 ```C++ #include ``` **栈顶:
阅读全文
摘要:# 117.STL中的multiset ## 1.multiset的介绍 > 1.multiset是按照特定顺序存储元素的容器,其中元素是可以重复的 > 2.在multiset在,元素的value也会识别它组成的键值对,multiset元素的值不能在容器中进行修改,但可以插入和删除 > 3.在内部,
阅读全文
摘要:# 116.STL中的set ## 1.set的简介 set的中文译为集合,知名见其意,因此set容器也就具有集合的属性啦!而集合这个概念大家应该上数学课应该都是学过的哈,集合它具有确定性、互异性、无序性。当然我们这里重点记住它的互异性就OK了,那么什么是互异性呢?就是说一个集合里边是不会出现两个甚
阅读全文
摘要:# 115.STL中的multimap ## 1.multimap的基本性质 multimap容器是和map容器相似的关联式容器,所谓“相似”,是指multimap容器具有和map容器相同的特性,即multimap容器也存储pair类型的键值对(其中K表示键的类型,T表示值的类型),其中各个键值对的
阅读全文
摘要:# 114.STL中的map ## 1.map的简介 map是C++STL中的一个关联式容器,它提供一对一的hash,它类似于Python中的字典,也有着键值对(Key-Value)这一说。我们可以通过键(Key)来找到值(Value),但需要注意的是,每个键(Key)只能在map中出现一次哦! m
阅读全文
摘要:# 113.STL中的pair ## 1.pair的简介 pair是C++STL(标准模板库)中的一个现有容器,它将2个数据整合成一组数据,当我们类似需求的时候就可以使用到pair啦!pair其实有点像Python中字典中的键值对(Key-Value),一个Key对应着一个Value。pair的本质
阅读全文
摘要:# 112.STL中的array ## 1.array介绍 > 在C++标准库中,array是固定大小的序列容器,array中包含特定个数并且严格按照线性序列排序的元素。因此array允许对元素进行随机访问,指向某一元素的指针可以通过偏移访问其他元素。在array内部,它只保存自己包含的元素,其他任
阅读全文
摘要:# 111.C++队列queue和deque ## 1.queue ### 1.1queue的简介 queue的中文译为队列,队列是一种数据结构。C语言中队列的定义及初始化以及一些相关操作实现起来较为繁琐,而C++的queue让这些都变得简便易实现。因为C++中有着许多关于queue的方法函数。 队
阅读全文
摘要:# 110.STL中的list ## 1.list的介绍 1.list是序列容器,允许在序列中的任何位置执行固定O(1)时间复杂度的插入和删除操作,并在两个方向进行迭代。 2.list容器使用双链表实现;双链表将每个元素存储在不同的位置,每个节点通过next,prev指针链接成顺序表。 3.list
阅读全文
摘要:# 109.C++类内初始化 C++11规定,可以为数据成员提供一个类内初始值。创建对象时,类内初始值用于初始化数据成员。像下面这样,cursor和height的类内初始值均为0。 ```C++ class Screen { private: int cursor = 0; int height =
阅读全文
摘要:# 108.类型别名声明 在代码编辑过程中,为了书写省事或者更容易理解,通常会自定义别名,包括类型别名、方法别名等。在 C++ 中定义别名有以下几种方式。 ## 1.#define ### 1.1概述 \#define 是宏定义,作用就是将一个标识符定义为一个字符串,源程序中所有的该标识符均以指定的
阅读全文
摘要:# 107.继承总结 ## 1. 概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称子类或者派生类,被继承的类称为父类或基类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知
阅读全文