mmxingye

导航

上一页 1 ··· 5 6 7 8 9

2022年4月8日 #

01 | 并查集

摘要: 并查集 并查集是一种树形数据结构,用于处理一些不相交集合的合并及查询问题。 常见的用途有求连通子图、求最小生成树的Kruskal算法和求最近公共祖先(LCA)等。 创建并查集只需要三个步骤。 算法步骤 初始化。把每个点所在集合初始化为其自身。 查找。查找两个元素所在的集合,即找祖宗。 合并。如果两个 阅读全文

posted @ 2022-04-08 11:11 独立树 阅读(69) 评论(0) 推荐(0) 编辑

2022年4月7日 #

05 | 容器汇编 II:需要函数对象的容器

摘要: 函数对象及其特化 在讲容器之前,我们需要首先来讨论一下两个重要的函数对象,less 和 hash。 我们先看一下 less,小于关系。在标准库里,通用的 less 大致是这样定义的: template <class T> struct less : binary_function<T, T, boo 阅读全文

posted @ 2022-04-07 22:42 独立树 阅读(44) 评论(0) 推荐(0) 编辑

04 | 容器汇编 I:比较简单的若干容器

摘要: string string 一般并不被认为是一个 C++ 的容器。但鉴于其和容器有很多共同点,我们先拿 string 类来开说。 string 是模板 basic_string 对于 char 类型的特化,可以认为是一个只存放字符 char 类型数据的容器。“真正”的容器类与 string 的最大不 阅读全文

posted @ 2022-04-07 22:26 独立树 阅读(65) 评论(0) 推荐(0) 编辑

2022年4月6日 #

03 | 右值和移动究竟解决了什么问题?

摘要: 移动语义是 C11 里引入的一个重要概念;理解这个概念,是理解很多现代 C 里的优化的基础。 值分左右 我们常常会说,C++ 里有左值和右值。这话不完全对。标准里的定义实际更复杂,规定了下面这些值类别(value categories): 我们先理解一下这些名词的字面含义: 一个 lvalue 是通 阅读全文

posted @ 2022-04-06 20:59 独立树 阅读(371) 评论(0) 推荐(1) 编辑

02 | 自己动手,实现C++的智能指针

摘要: 第一步:针对单独类型的模板 为了完成智能指针首先第一步的想法。 class shape_wrapper { public: explicit shape_wrapper( shape* ptr = nullptr) : ptr_(ptr) {} ~shape_wrapper() { delete p 阅读全文

posted @ 2022-04-06 19:58 独立树 阅读(341) 评论(0) 推荐(0) 编辑

2022年4月2日 #

01 | 堆、栈、RAII:C++里该如何管理资源?(极客时间笔记)

摘要: 基本概念 堆,英文是 heap,在内存管理的语境下,指的是动态分配内存的区域。这个堆跟数据结构里的堆不是一回事。这里的内存,被分配之后需要手工释放,否则,就会造成内存泄漏。 C++ 标准里一个相关概念是自由存储区,英文是 free store,特指使用 new 和 delete 来分配和释放内存的区 阅读全文

posted @ 2022-04-02 23:19 独立树 阅读(147) 评论(0) 推荐(0) 编辑

2022年3月27日 #

01 | c语言非递归乘法表(帧栈理解)

摘要: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <stdbool.h> 4 5 typedef struct{ 6 int pc; //程序运行到了那一步 7 int line; // 8 }Frame; 9 10 Frame stk[12 阅读全文

posted @ 2022-03-27 11:33 独立树 阅读(29) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9