点积与叉积在图形学的简单应用 点积(Dot Product) 高中我们都学过点积的几何定义(这里需注意\hat a 表示方向和\vec{a}相同的单位向量 ):
作为"线程的线程",协程能够将线程的同步任务改造成异步执行,可以实现用户级的并发。最核心的原理就是前面介绍过的ucontext,它可以记录线程执行到某时的运行状态,并随时暂存或恢复。 那么,有了ucontext后,如何管理协程的状态信息呢?如何实现协程调度,以及其中最核心的操作resume()和yi
由于协程的优势需要借助多线程发挥,因此实现协程库之前先动手封装一个自己的轻量线程库 其实就是对POSIX各个接口的封装,让它和项目更统一一些,刚好也可以学习一下多线程编程 POSIX线程库基本接口 pthread_create 函数原型如下 int pthread_create(pthread_t
暂时做简单记录 C++中的条件变量condition_variable unique_lock最简单的用法 由于这里还没介绍unique_lock,这里先介绍一个最简单的用法: std::mutex mtx;
std::condition_variable cv;
int data = 0;
vo
协程 什么是协程? 协程通俗一点可以看作一种轻量级线程。408中深入学习过进程与线程,它们都是操作系统级的并发/并行方式,而协程可以实现用户级的并发编程。 具体来说,协程在执行过程中可以实现用户级的yield(暂停)和resume(恢复):协程中,函数可以在执行过程中yield,然后切换至另一个函数
晴问链接:熊熊采蜜 题目描述 熊熊正在采蜜,他需要编写一个AI来帮助他高效地采集蜂蜜。在采蜜的过程中,熊熊会遇到三个蜂巢,每个蜂巢都有一定数量的蜂蜜。当熊熊发动采集时,他可以选择最多三个不同的蜂巢进行采集,这里选择的顺序不限制: 第一个被采集的蜂巢将失去 a 点蜂蜜。 第二个被采集的蜂巢(如果有)将
先不多说,记录一下对如下代码的理解: while(!pq.empty()) {
int now = pq.top().first;
pq.pop();
if(visited[now] == 1) {
continue;
}
visited[now] = 1;
for(pair<int
普通二叉树 首先是二叉树的结构,假如数据用以下方式给出: 第一行一个整数n(1≤n≤50),表示二叉树的结点个数; 接下来n行,每行一个结点,按顺序给出编号从0到n-1的结点的左子结点编号和右子结点编号,中间用空格隔开。如果不存在对应的子结点,那么用-1表示。 6
2 5
-1 -1
1 4
-1
基础版:77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例
题目:40. 组合总和 II 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target