- 博客(31)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 有限状态机(Kuafu)
kLogin,//开始登录kLoginOk,kLoginOut,//创建自定义Machine//开启event处理线程//模拟event发生。
2024-02-29 10:19:33
305
原创 解码后的数据进行缩放或者格式转换
解码后的数据中可能是经过对⻬的,既然有对⻬,那就是数据⾥加多了⼀些为了对⻬⽽多余的字节,如果 我们想最后显示视频数据,那么这些多余的数据势必要进⾏剔除掉,那么怎么剔除呢,linesize就是来帮你 ⼲这事的,有了它,你就可以一行一行⽐较,然后把每⾏最后为了对⻬⽽补的字节删除,还原出视频的真实数据。也就是每个通道的行字节数,对应的是解码后的 AVFrame 中的 linesize[] 数组,根据它可以确立下一行的起始位置。作用:格式化src指定的内存块,即将dst_data指向src的内存。
2024-02-28 14:55:26
720
原创 SDL渲染视频文件
到现在为止窗口已经创建,但不会显示出来。创建窗口后需要将窗口放到渲染器中,渲染器将其输出到渲染驱动层。内存图像包含图片的所有信息,渲染器将图片的描述信息抽取出来形成纹理,将纹理送到显卡上渲染展示出来。创建窗口是在内存中生成一个窗口,显示需要将其推到显卡上;显卡通过驱动将其投影到屏幕上。
2023-08-29 10:52:12
85
原创 多线程和锁
阻塞(Blocked):该线程被阻塞挂起【pend(锁、时间、信号量等阻塞)、suspend(主动pend)、delay(延时阻塞)、pendtime(因为锁、事件、信号量时间等超时等待)】override 关键字,可以显式的在派生类中声明,哪些成员函数需要被重写,如果没被重写,则编译器会报错。退出(Exit):该线程运行结束,等待父线程回收其控制块资源。就绪(Ready):该线程在就绪列表中,等待CPU调度。运行(Running):线程正在运行。lock()与try_lock()
2023-03-07 11:08:01
159
原创 Windows服务程序
当这个服务需要把它当时的状态报告给SCM的时候,就必须把这个句柄传给需要它的Win32函数。像ServiceMain一样,CtrlHandler也是一个回调函数,用户必须为它的服务程序中每一个服务写一个单独的CtrlHandler函数,因此如果有一个程序含有两个服务,那么它至少要拥有5个不同的函数:作为入口点的main()或WinMain(),用于第一个服务的ServiceMain函数和CtrlHandler函数,以及用于第二个服务的ServiceMain函数和CtrlHandler函数。
2023-02-28 15:37:20
287
原创 C++中的强引用与弱引用
引用计数实现shared_ptr ,虽然解决了指针独占的问题,但也引来了引用成环的问题,shared_ptr 和 weak_ptr 一起引入了标准库,用来解决循环引用的问题。在 shared_ptr 的使用过程中,当强引用计数为 0 是,就会释放所指向的堆内存。那么当两个 shared_ptr 互相引用,那么它们就永远无法被释放了。class CB;
2023-02-09 19:37:28
496
原创 git的使用
(1) 使用 git stash ,将当前工作区的内容放到暂存区,便可以切换分支;(4) 使用git stash pop,将暂存区的内容还原到工作区;(3) 使用 git stash clear,可以清空暂存区记录;(2) 使用git stash list,可以查看暂存区的记录;
2022-10-27 10:39:04
186
原创 多线程的函数说明
说明:当线程执行pthread_cond_wait时,一定是处于某个临界区,正在访问共享资源,存在一个mutex与该临界区相关联。作用:等待条件变量,挂起线程。释放mutex,进入阻塞状态,等待被别的线程唤醒。参考链接: [2]https://blog.youkuaiyun.com/lyx_323/article/details/82897192。作用:等待条件变量,挂起线程,如果到了timeout,线程自动解除阻塞。(2)另一个线程使"条件成立"(给出条件成立信号)。(1)一个线程等待"条件变量的条件成立"而挂起;
2022-10-17 13:19:58
95
原创 树专题记录
树专题基础篇树的层次遍历基础篇树的层次遍历算法描述:特例处理: 当根节点为空,则返回空列表 [] ;初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root] ;BFS 循环:当队列 queue 为空时跳出;新建一个临时列表 tmp ,用于存储当前层打印结果;当前层打印循环: 循环次数为当前层节点数(即队列 queue .size()长度);出队: 队首元素出队,记为 node;打印: 将 node.val 添加至 tmp 尾部;添加子节点: 若
2021-12-09 11:19:56
145
1
原创 排序算法总结
排序算法总结时间复杂度、空间复杂度排序算法的分析与实现时间复杂度、空间复杂度排序算法的分析与实现冒泡排序分析:第 i 趟遍历可以将序列中的第 i 个最大值找到,放到倒数第 i 个位置;从第一个位置开始,一趟遍历找最大值,需要每次与后一个相邻位置比较,将较大值后移;template <typename T>void BubbleSort(T a[], int len){ int i, j; T temp; for (j = 0; j < len - 1; j++)/
2021-10-22 22:51:49
106
原创 动态规划专栏
动态规划(100道)分类说明以下题目均来源于力扣,其汇总主要是按照难易程度进行划分,大家可以选择适合自己的部分进入。题目难度:容易53.最大子序和70.爬楼梯118.杨辉三角119.杨辉三角 Ⅱ121.买卖股票的最佳时机338.比特位计数392.判断子序列509.斐波那契数列题目难度:中等230. 二叉搜索树中第K小的元素5. 最长回文子串22. 括号生成45. 跳跃游戏 II55. 跳跃游戏62. 不同路径63. 不同路径 II64. 最小路径和91. 解码
2021-10-17 21:19:35
556
1
转载 C++关键字
C++关键字1. volatile:定义:volatile int i;说明: volatile(多变的)关键字提醒编译器它后面所定义的变量 i 随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。...
2021-03-12 15:44:41
90
原创 递归
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39更新第0项第1项第2项011AB先更新B:B=B+A(n-1项+n-2项)在更新A: A=B-A(更新后的B-未更新的A)递归思想是从结果推到初始值停止;循环是从初始值开始往后推所求的值。int Fibonacci...
2020-01-03 09:50:28
98
原创 树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。递归的方法:前序遍历序列的第一个值是根节点,从中序遍历序列中找到该根节点,左右序列分别作为一左子树的中序遍历和右子树的中序遍历,同时在前序遍历中也找到左子树的前序...
2020-01-02 11:03:23
85
原创 对二维数组的操作
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。从右上角开始,该元素是该行中最小在列中最大的元素,如果target等于该元素返回真;target大于该元素往下移一行;target小于该元素往左移一列。class Solution {public: ...
2020-01-01 17:59:44
366
原创 Python基本语法
Python元素类型的区分| :——– | ——–:| :–: | | 列表list | [] | 有先后顺序,有下标位,可重复,可变类型(增改) | |元组tuple | () | 有先后顺序,有下标位,可重复,不可变类型 | | 字典dict | {} | 没有先后顺序,可变类型 | |集合set|{}|没有先后顺序,可变类型 |...
2018-06-02 20:24:31
122
原创 JavaWeb客户端与服务器端跳转
客户端跳转(重定向):客户端给服务器发送一个请求,服务器给客户端一个响应(响应包含一个URL),客户端根据这个响应中的URL再次向服务器发送一个请求。地址栏改变。客户端跳转是两次请求,服务器给出两次响应。服务器端跳转(forward):客户端给服务器发送一个请求,服务器直接访问目标地址的URL,将URL的相应内容读取过来,再将这些内容发送给客户端。客户端不知道内容来自哪里,故地址栏不
2018-01-05 13:42:58
782
原创 map
map中的数据以pair形式出现的键值对,称为映射。 1.map类模板的模板头部分定义:template< typename _Key, //键值类型 typename _Tp, //实值类型 typename _Compare=std::less<_Key>, //键值排序比较器,用以确定键值排序策略,从小到大排序
2017-12-11 15:26:06
123
原创 set容器
set用来保存只有键值没有实值的容器,这类容器的基础结构是红黑树,这个红黑树各节点数据是单一数据而不是pair。当元素插入容器时,会按照指定排序自动排序,默认从小到大。#include<iostream>#include<set>using namespace std;int main(){ set<int> set1; set<int>::iterator it;
2017-12-10 19:48:24
149
原创 Vector
#include<iostream>#include<Vector>using namespace std;int main(){Vector<int> first;Vector<int> second(4,100);//100 100 100 100Vector<int> third(second.first(),second.end()); //100 100 100 100Ve
2017-11-23 21:07:05
163
原创 文章标题
3.3通过只调整指针(而不是数据)来交换两个相邻的元素——双链表实现#include<iostream>using namespace std;struct Node { int number; struct Node* last; struct Node* next;};//初始化双链表Node* initNode() { Node* first = ne
2017-10-21 17:42:40
159
原创 表、栈、队列联系
3.3通过只调整指针(而不是数据)来交换两个相邻的元素——单链表实现`#include using namespace std;typedef struct Node { int number; Node* next; }Node;//初始化单链表 Node* initNode() { Node* first = new Node(); if (firs
2017-10-21 17:07:18
268
原创 表、栈、队列联系
3.2给你一个链表L和另一个链表P,它们包含以升序排序的整数。操作PrintLots(L,P),将打印L中那些由P所指定的位置上的元素。`#include“iostream” using namespace std;typedef struct Node { int number; Node* next; }Node;//初始化单链表 Node* initNode() {
2017-10-21 17:05:19
223
原创 表、栈、队列联系
表、栈、队列联系 3.1编写打印出一个单链表的所有元素的程序。#include"iostream"using namespace std;typedef struct Node{ int number; struct Node* next;}Node;//初始化单链表Node* chushihuaNode() { Node* first; first =
2017-10-21 17:01:17
166
网上书城系统
2017-12-14
opencv2.4.10+vs2015+win10(64)如何配置?
2016-05-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人