2.6k2 分钟

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

# 基本语法特性 [capture](params) opt -> retureType{ body;};其中 capture 是捕获列表, params 是参数列表, opt 是函数选项, retureType 是返回值类型, body 是函数体。 # 捕获列表 不能省略。捕获一定范围内的变量。 [] 不捕捉任何变量。 [&] 捕获外部作用域中所有变量,并作为引用在函数体内使用 (按引用捕获)。 [=] 捕获外部作用域中所有变量,并作为副本在函数体内使用 (按值捕获),拷贝的副本在匿名函数体内部是只读的。 [=, &
15k14 分钟

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

# JS 的调用方式与执行顺序 # 使用方式 HTML 页面中的任意位置加上 <script type="module"></script> 标签即可。 常见使用方式有以下几种: 直接在 <script type="module"></script> 标签内写 JS 代码。 直接引入文件: <script type="module" src="/static/js/inde
12k10 分钟

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

# 位置 # position CSS position 属性用于指定一个元素在文档中的定位方式。 定位类型 定位元素(positioned element)是其计算后位置属性为 relative, absolute, fixed 或 sticky 的一个元素(换句话说,除 static 以外的任何东西)。 相对定位元素(relatively positioned element)是计算后位置属性为 relative 的元素。 绝对定位元素(absolutely positioned element)是计算后位置属性为 absolute 或 fixed 的元素。 粘性定位元素(sticki
4.1k4 分钟

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

# 哈希 # 哈希函数 哈希函数是一种根据关键码 key 去寻找值的数据映射的结构,即:根据 key 值找到 key 对应的存储位置。 size_t index = H(key) // 由关键字获取所在位置# 哈希函数的构造方式 定址法: 这种方法使用线性函数来构造哈希函数,公式为 H(key) = a * key + b 。其中, a 和 b 是常数,需要根据实际情况进行选择,以确保哈希值的均匀分布。这种方法简单,但可能不适用于所有类型的键。 平方取中法: 这种方法首先计算键的平方,然后取平方结果的中间几位作为哈希值。例如,对于
18k16 分钟

# set 的使用 # 基本特征 std::set 是一种关联容器,含有 Key 类型对象的已排序集。用比较函数进行排序。搜索、移除和插入拥有对数复杂度。 set 通常以红黑树实现。 默认构造: 创建一个空的 set。 set<Key, Compare, Allocator> set1; 复制构造: 使用另一个 set 的内容、比较函数和分配器来构造新的 set。 set<Key, Compare, Allocator> set1;set<Key, Compare, Allocator> set2(set1); 移动构造: 使用另一个 s
4.6k4 分钟

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