随笔分类 - C/C++
摘要:在STL中,迭代器失效可发生在三种情况下: 一、数组型数据结构(vector、deque) 对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator或者插入某个iterator会使后面所有元素的iterator都失效。这是因为vetor,deque使用了连续
阅读全文
摘要:priority_queue q;//默认优先级队列的定义。 在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。 #include <iostream> #include <vector> #include <queue> using namespace std; stru
阅读全文
摘要:双链表 在单链表的每个结点中再设置一个指向上一跳的前驱结点的指针域 //结构体定义 typedef struct _node { dataType data; //链表中的数据域 struct _node *next; //链表的下一跳 struct _node *prior; //链表的上一跳 }
阅读全文
摘要:同步(synchronization)指的是多个任务(线程)按照约定的顺序相互配合完成一件事情。由于多 个进程共享一段内存,因此也需要依靠某种同步机制,如互斥锁和信号量等 。 信号量(semaphore),它是不同进程间或一个给定进程内部不同线程间同步的机制。信号量包 括:posix有名信号量、 p
阅读全文
摘要:两个线程操作同一临界区时,通过互斥锁保护,若A线程已经加锁,B线程再加锁时候会被阻塞,直到A释放锁,B再获得锁运行,线程B必须不停的主动获得锁、检查条件、释放锁、再获得锁、再检查、再释放,一直到满足运行条件的时候才可以(而此过程中其他线程一直在等待该线程的结束),这种方式是比较消耗系统资源的。 条件
阅读全文
摘要:快速排序是一种排序。 首先将一组要排序的数以数组的形式输入进去,选取一个基准值(用于比较,一般选取数组的第一个数作为基准值),进行第一轮排序后,将小于基准值的数排在基准值前,大于基准值的数排在基准值后,这样就将数组分成了三组,然后运用递归,将第一组和第三组再进行排序、分组,直至每组只有一个数据,就完
阅读全文
摘要:![](https://img2022.cnblogs.com/blog/1978422/202207/1978422-20220726152923668-196557507.png)
阅读全文
摘要:对称加密 加密 encryption 与解密 decryption 使用的是同样的密钥 secret key,对称加密是最快速、最简单的一种加密方式。加密和解密算法是公开的,秘钥必须严格保存,如果秘钥泄露,别人就能够用密文+秘钥还原成你的明文。 对称加密有很多种算法,由于它效率很高,所以被广泛使用在
阅读全文
摘要:我们知道TCP 和 UDP的一个区别之一就是TCP要保证丢失的package会被再次重发,确保对方能够收到。 而在视频播放中,如果有一秒钟的信号确实,导致画面出现了一点瑕疵,那么最合适的办法是把这点瑕疵用随便哪些信号补充上,这样虽然画面有一点点瑕疵但是不影响观看。如果用的TCP的话,这点缺失的信号会
阅读全文
摘要:需要用到的文件有sqlite3.h 、sqlite3.dll、sqlite3.lib。获取方法可参考https://blog.csdn.net/qinbaby/article/details/83107345 。 将这三个文件拷贝到自己新建MFC项目目录下,在解决方案窗口下 添加现有项,选择sqli
阅读全文
摘要:复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 100] 虚部 也是一个整数,取值范围是 [-100, 100] i2 == -1 给你两个字符串表示的复数 num1 和 num2 ,请你遵循复数表示形式,返回表示它们乘积的字符串
阅读全文
摘要:std::set作为标准库的一个关联容器,实现内部元素进行了排序,使用这特性可以对一组元素进行插入排序。 std::set最初的设计是完成数学中“集合”的概念,它提供的接口也是如此。 #include<set> int array[5]={12, 34, 10, 98, 3}; const size
阅读全文
摘要:main.cpp #include <iostream> #include"person.h" using namespace std; int main() { Person* p = new Person(100); p->printPerson(); smartPointer sp(new P
阅读全文
摘要:set<int> sa; bool flag = sa.insert(1).second; bool flag2 = sa.insert(1).second; cout<<"flag="<<flag<<endl; cout<<"flag2="<<flag2<<endl;
阅读全文
摘要:#include <iostream> using namespace std; int main() { //c++范围for语句,处理字符串中的每个字符 //将字符串中的每个小写字母转换为大写字母 string str("I can fly high!"); for(auto &c : str)
阅读全文
摘要:二分法: 二分法应用条件:1)数组为有序数组。2)同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的。 区间的定义: 区间的定义不同代码就不同。 1)定义target在[left, right]区间 while (left <= right) 要使用 <=
阅读全文
摘要:死锁的概念 在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的线程就只能等待,直到锁被释放。 那么,当两个线程为了保护两个不同的共享资源而使用了两个互斥锁,那么这两个互斥锁应用不当的时候,可能会造成两
阅读全文
摘要:目录 1、多媒体处理开源库FFmpeg 2、实时音视频处理开源库WebRTC 3、Chrome浏览器内核开源库Chromium 4、Chromium嵌入式框架开源库CEF 5、多协议网络传输开源库libcurl 6、开源操作系统ReactOS 7、开源多媒体播放器VLC 8、最后 在开源软件盛行的今
阅读全文
摘要:给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按如下格式输出: "a->b"
阅读全文