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
5.5k5 分钟

# CSS 三大特性 # 层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式. 层叠性主要解决样式冲突的问题 层叠性原则: 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式 样式不冲突,不会层叠 div { color: red; font-size: 18px;}div { color: green;}/** * 执行后面的样式 * div { * color: green; * font-size: 18px; * } */# 继承性 CS
7.5k7 分钟

# Emmet 语法 # 简介 Emmet 语法的前身是 Zen coding,它使用缩写来提高 HTML/CSS 的编写速度。 # 快速生成 HTML 结构语法 生成标签:直接输入标签名,按 <kbd>tab</kbd> 键即可。比如 div 然后 <kbd>tab</kbd> 键, 就可以生成 <div></div> 。 如果想要生成多个相同标签 ,加上 * 就可以了。比如 div*3 就可以快速生成 3 个 div 。 如果有父子级关系的标签,可以用 >
5.9k5 分钟

# CSS 选择器 # CSS 基础选择器 基础选择器又包括:标签选择器、类选择器、id 选择器和通配符选择器 # 标签选择器 标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。 语法: 标签选择器 { 属性:属性值; ...} 作用:标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。 # 类选择器 如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器 语法: .类名 { 属性1: 属性值1; ..
10k9 分钟

# 基本结构标签 标签名 定义 说明 <html></html> HTML 标签 页面中最大的标签,称为根标签 <head></head> 文档的头部 注意在 head 标签中我们必须要设置的标签是 title <title></title> 文档的标题 让页面拥有一个属于自己的网页标题 <body></body> 文档的主体 元素包含文档的所有内容,页面内容基本上都是放到 body 里面的 # 常用标签 # 标题标签 标
21k19 分钟

# 标准模版库 Standard Template Library(STL),是一种高效且功能强大的 C++ 程序库,被纳入 C++ 标准库中,是 ANSI/ISO C++ 规范中最新且具有创新性的一部分。它包含了计算机科学中常用的基本数据结构和算法,为 C++ 开发者提供了一个可扩展的框架,体现了软件复用性。 STL 采用了泛型编程模式,与面向对象编程不同,它允许编写适用于多种数据类型的通用代码。这种模式通过抽象化数据类型,使用泛型代替具体类型,来实现代码的通用性。 STL 虽然复杂,但可以概括为六个主要组件:容器、迭代器、算法、适配器、函数对象和空间配置器。 容器:提供数据结
18k16 分钟

# RAII 技术 RAII(Resource Acquisition Is Initialization)是 C++ 中一种重要的资源管理技术,由 C++ 之父 Bjarne Stroustrup 提出。它利用对象的生命周期来管理资源,确保资源在对象生命周期结束时自动释放。RAII 通过构造函数获取资源,并在析构函数中释放资源,从而避免了资源泄漏。 RAII 的核心思想 资源获取即初始化:在对象构造时获取资源。 自动资源释放:在对象析构时自动释放资源。 这种模式确保了即使在发生异常或多个退出路径的情况下,资源也能被正确释放。 #include <iostream>#inclu