摘要: 一、Lamda表达式 Lamda表达式是C++11中引入的一项新技术,利用Lamda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使得代码更可读。是一种匿名函数,即没有函数名的函数;Lamda函数的语法定义如下: **[capture] :**捕捉列表,捕捉列表总是作为lambda 阅读全文
posted @ 2022-03-12 00:00 底层逻辑 阅读(555) 评论(0) 推荐(0)
摘要: 一、类(class)新增的特性 1、default/delete 控制默认函数 在我们没有显式定义类的赋值构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数:默认的赋值函数以内存复制的形式完成对象的复制。 这种机制可以为我们节省很多编写复制构造函数和赋值操作符的时间,但是在某些情况下, 阅读全文
posted @ 2022-03-11 23:35 底层逻辑 阅读(132) 评论(0) 推荐(0)
摘要: 一、智能指针 C程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等 阅读全文
posted @ 2022-03-11 16:29 底层逻辑 阅读(361) 评论(0) 推荐(0)
摘要: 一、新类型及新语法 1、新的数据类型 C++ 11新增了类型long long和unsigned long long,以支持64位(或者更宽)的整型;新增了类型char16_t和char32_t,以支持16位和32位的字符表示;还新增了“原始”字符串。 【示例】 #include <iostream 阅读全文
posted @ 2022-03-11 16:02 底层逻辑 阅读(229) 评论(0) 推荐(0)
摘要: 一、string类 string类本不是STL的容器,但是它与STL容器有着很多相似的操作。之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下的需要。 我们尽 阅读全文
posted @ 2022-03-11 14:50 底层逻辑 阅读(63) 评论(0) 推荐(0)
摘要: https://commonmark.org/ 阅读全文
posted @ 2022-03-11 13:30 底层逻辑 阅读(45) 评论(0) 推荐(0)
摘要: 我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句: 阅读全文
posted @ 2022-03-11 12:32 底层逻辑 阅读(425) 评论(0) 推荐(0)
摘要: #容器适配器 stack、queue、priority_queue 都不支持任一种迭代器,它们都是容器适配器类型,stack是用vector/deque/list对象创建了一个先进后出容器;queue是用deque或list对象创建了一个先进先出容器;priority_queue是用vector/d 阅读全文
posted @ 2022-03-11 09:25 底层逻辑 阅读(76) 评论(0) 推荐(0)
摘要: #STL算法分类 ##STL中的算法大致可以分为以下七类: - 不变序列算法 - 变值算法 - 删除算法 - 变序算法 - 排序算法 - 有序区间算法 - 数值算法 ##大多重载的算法都是有两个版本的 - 用 “==” 判断元素是否相等, 或用 “<”来比较大小。 - 多出一个类型参数 “Pred” 阅读全文
posted @ 2022-03-11 01:15 底层逻辑 阅读(194) 评论(0) 推荐(0)
摘要: #1、基本概念 适配器, 在STL中扮演着转换器的角色,本质上是一种设计模式,用于将一种接口转换成另一种接口,从而是原本不兼容的接口能够很好地一起运作。适配器不提供迭代器。 #2、基本类型 根据目标接口的类型,适配器可分为以下几类: (1) 改变容器的接口,称为容器适配器; (2)改变迭代器的接口, 阅读全文
posted @ 2022-03-11 01:10 底层逻辑 阅读(91) 评论(0) 推荐(0)