函数对象适配器主要用于对函数、函数对象进行适配(转换),使得原本不符合接口需求的函数、函数对象变得符合要求。比如:我们有一个 2 个参数的函数对象,但是我们需要 1 个参数的函数对...
std::function 是 C++11 标准库中的一个类模板,用于封装可调用对象(函数、函数指针、成员函数指针、Lambda 表达式等),并提供一种统一的方式来管理它们。 通过...
可以使用C对变量中的个别位进行操作。您可能对人们想这样做的原因感到奇怪。这种能力有时确实是必须的,或者至少是有用的。C提供位的逻辑运算符和移位运算符。 1. 位运算符 位运算符 取...
C99 提供一个成为 伸缩性数组成员 的特性。利用这一特性可以声明结构体的最后一个成员具有特殊的属性。 该数组成员的特性:1. 该成员可存在,也可不存在,当不存在时,并不占用结构...
浮点小数是程序中经常使用的一种数据类型,其使用非常广泛,特别是在科学计算、工程领域以及计算机图形学、人工智能等领域。 1. 原理 在计算机中,浮点数常常采用 IEEE 754 标准...
C++ 是一种静态类型语言,数据类型在编译时确定。但在有些场景下,编译时无法确定数据类型,需要在运行时才能确定。RTTI(Run Time Type Identification,...
位域也叫做位段(bit field),使用位域能够节省结构体数据内存的占用。接下来,我们从以下几个方面来讲解下位域: 1. 位域的作用 2. 位域的语法 3. 位域的存储
完美转发在 C++ 标准库中得到很多应用,那么,什么是完美转发呢?完美转发有什么用?如何实现完美转发呢? 接下来,我们从以下几个方面来讲解这部分知识: 1. 完美转发概念 2....
C++11 中增加 default 关键字,本篇文章讲解下空实现的默认构造函数和 default 的默认构造函数的区别。 接下来,从以下几个方面来讲解 default 关键字: ...
代理模式的目的是为其他对象提供一种代理以控制对这个对象的访问。我们接触到的迭代器也可以理解为一种代理,我们通过它来间接对容器中元素进行访问。 代理模式中,有以下几个参与角色: Re...
我们在编码时,经常用到容器,我们也知道容器的种类很多,例如:数组、链表、集合、树、图等等。这些不同的容器由于内部实现原理的不同,会存在不同的遍历方式。 我们就想,是否能够忽略容器内...
属性管理器在Visual Studio IDE中是一个很有用的工具,它可以帮助你管理项目中的各种属性。具体来说,属性管理器提供了一个界面,让你可以方便地查看和编辑项目中的各种属性,...
课程是为对 Linux 操作系统完全没有经验或仅有基础知识的初学者设计的课程。这个课程旨在帮助学生从零开始建立对 Linux 的基本理解和技能,使他们能够熟练地使用 Linu x进...
我们以前在学习 C++ 构造函数的时候,经常会有以下的一些认知: 1. 当类的内部没有提供默认构造函数时,编译器会给类提供一个无实现的无参数的构造函数。 2. 当类的内部没有提供...
单例模式保证一个类的实例只有一个。如何保证一个类只有一个实例,不同的语言语法特性不同,需要结合语言的语法特点来实现。在 C++中的实现方式如下: 上面类通过: 普通构造、拷贝构造私...
函数模板特化是 C++ 中一项非常重要的编程技巧。这篇文章,我们讲解下函数模板特化相关知识,主要讲解以下三个知识点: 1. 函数模板特化概念 2. 函数模板特化语法 3. 函数模...
constexpr 是 C++11 中增加的关键字,我们可以使用该关键字定义以下对象: 1. 编译期常量; 2. 编译期计算的常量表达式函数; 3. 编译期自定义对象。