七葉の喫茶ステラ
✨

七葉の喫茶ステラ

=技术与美日新月异=

STL 空间配置器

STL 空间配置器

函数对象 函数对象(也称为仿函数)是 C++ 中的一种概念,它允许对象表现得像函数一样。这意味着可以像调用普通函数那样调用这些对象。函数对象可以是以下几类: 1. 重载了函数调用运算符的类创建的对象: 用户自定义的类,通过重载 operator() 运算符,可以创建出自己的函数对象。这些对象可以有状态(即数据成员),也可以是无状态的。 1. 函数名: 在 C++ 中,函数名本身可以作为函数指针使用,因此可以直接作为函数对象。例如,如果有一个函数 int add(int a, int b),那么可以直接使用 add 作为函数对象,如 add(2, 3)。 1. 函数指针: 函数指针是指向函数的指
more...
C++ lambda 表达式

C++ lambda 表达式

基本语法特性 其中 capture 是捕获列表,params 是参数列表,opt 是函数选项,retureType 是返回值类型,body 是函数体。 捕获列表 不能省略。捕获一定范围内的变量。 [] 不捕捉任何变量。 [&] 捕获外部作用域中所有变量, 并作为引用在函数体内使用 (按引用捕获)。 [=] 捕获外部作用域中所有变量, 并作为副本在函数体内使用 (按值捕获),拷贝的副本在匿名函数体内部是只读的。 [=, &bar] 按值捕获外部作用域中所有变量, 并按照引用捕获外部变量 bar [bar] 按值捕获 bar 变量, 同时不捕获其他变量。 [&bar] 按引用捕获 bar 变量,同
more...
STL 算法

STL 算法

概述 算法中包含很多对容器进行处理的算法,使用迭代器来标识要处理的数据或数据段、以及结果的存放位 置,有的函数还作为对象参数传递给另一个函数,实现数据的处理。这些算法可以操作在多种容器类型 上, 所以称为“泛型”,泛型算法不是针对容器编写,而只是单独依赖迭代器和迭代器操作实现。而且算法 库中的算法都是普通函数(自由函数)。 算法的分类 非修改式的算法:foreach、count、find 修改式的算法: copy、remove、removeif、replace 排序算法: sort 二分搜索算法: lowerbound 集合操作: setintersection 堆操作: makeheap、p
more...
JavaScript 基础

JavaScript 基础

JS 的调用方式与执行顺序 使用方式 HTML 页面中的任意位置加上 标签即可。 常见使用方式有以下几种: 直接在 标签内写 JS 代码。 直接引入文件: 。 将所需的代码通过 import 关键字引入到当前作用域。 例如: /static/js/index.js 文件中的内容为: 中的内容为: 执行顺序 1. 类似于 HTML 与 CSS,按从上到下的顺序执行; 2. 事件驱动执行; HTML, CSS, JavaScript 三者之间的关系 1. CSS 控制 HTML 2. JavaScript 控制 HTML 与 CSS 3. 为了方便开发与维护,尽量按照上述顺序写代码。例如:不要在
more...
STL 迭代器

STL 迭代器

迭代器的基本概念 迭代器(iterator)模式又称为游标(Cursor)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 或者这样说可能更容易理解:Iterator 模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由 iterator 提供的方法)访问聚合对象中的各个元素。 迭代器产生原因 Iterator 类的访问方式就是把不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果。 迭代器的类型 输入迭代器(InputIterator)、输出迭代器(OutputIterat
more...
CSS 位置、Flex布局

CSS 位置、Flex布局

位置 position CSS position 属性用于指定一个元素在文档中的定位方式。 定位类型 定位元素(positioned element)是其计算后位置属性为 relative, absolute, fixed 或 sticky 的一个元素(换句话说,除 static 以外的任何东西)。 相对定位元素(relatively positioned element)是计算后位置属性为 relative 的元素。 绝对定位元素(absolutely positioned element)是计算后位置属性为 absolute 或 fixed 的元素。 粘性定位元素(stickily pos
more...
STL 容器适配器

STL 容器适配器

容器的选择 元素是不是有序 如果需要保持元素的有序状态,那么关联式容器通常是最佳选择。这些容器,如 set 和 map,内部使用平衡二叉树(通常是红黑树),它们会自动维护元素的有序性,且允许进行高效的查找、插入和删除操作。 对于无序关联式容器,如 unorderedset 和 unorderedmap,它们基于哈希表实现,不保证元素的顺序,因此如果需要有序的元素,不应选择这些容器。 如果元素的顺序需要动态维护,或者需要频繁的排序操作,那么序列式容器 list 可能是一个合适的选择。list 是一个双向链表,提供了 sort 成员函数,可以对链表中的元素进行排序。虽然 vector 和 dequ
more...
STL 无序关联性容器

STL 无序关联性容器

哈希 哈希函数 哈希函数是一种根据关键码 key 去寻找值的数据映射的结构,即:根据 key 值找到 key 对应的存储位置。 哈希函数的构造方式 定址法: 这种方法使用线性函数来构造哈希函数,公式为 H(key) = a key + b。其中,a 和 b 是常数,需要根据实际情况进行选择,以确保哈希值的均匀分布。这种方法简单,但可能不适用于所有类型的键。 平方取中法: 这种方法首先计算键的平方,然后取平方结果的中间几位作为哈希值。例如,对于键 key = 1234,其平方为 $1234^2 = 1522756$,然后可以选择中间的数字 227 作为哈希值。这种方法试图通过平方操作增加键之间的
more...
STL 关联式容器

STL 关联式容器

set 的使用 基本特征 std::set 是一种关联容器,含有 Key 类型对象的已排序集。用比较函数进行排序。搜索、移除和插入拥有对数复杂度。set 通常以红黑树实现。 1. 默认构造: 创建一个空的 set。 2. 复制构造: 使用另一个 set 的内容、比较函数和分配器来构造新的 set。 3. 移动构造: 使用另一个 set 的内容来构造新的 set,原 set 将变为空。 4. 初始化列表构造: 使用初始化列表来构造 std:: set。 5. 范围构造(C++23): 使用给定范围的元素来构造 set。 6. 按范围构造(C++23): 使用给定迭代器范围的元素来构造 set。
more...
CSS 阴影和浮动

CSS 阴影和浮动

其他样式 圆角边框 在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。 border-radius 属性用于设置元素的外边框圆角。 参数值可以为数值或百分比的形式 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写为 50% 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角 分开写:border-top-left-radius、border-top-right-radius、border-bottom-right-radius 和 border-bottom-left-radius 兼容性 ie9+ 浏览器支持, 但是不会
more...