摘要:
假设,当前我们想禁止编译器自动生成构造函数和赋值函数 方法很简单,我们对这两个函数进行自定义就好了 如果我们想附加一个条件,在程序中避免使用类的调用构造函数和拷贝构造函数 也就是禁止如下情况产生: class A; A t1, t2; t1.data = 10; t2 = t1; // 赋值函数// 阅读全文
摘要:
操作系统 1. 进程与线程的本质区别、以及各自的使用场景 答:进程是操作系统分配资源的基本单位,线程是cpu调度的基本单位。 线程非共享的,errno变量,独立的栈空间,未决信号集,寄存器和栈指针(指向内核栈) 线程的优点: 通信方便(socket,fifo,pipe,mmap,消息队列),共享数据 阅读全文
摘要:
以小顶堆为例 首先第一步是将堆建立起来,保证根节点是整棵树最小的,然后每个节点所代表的子树,这个节点的值也是这个子树中最小的 然后第二步,将节点一个一个的和根节点进行交换 为什么这么做? 第一步中,我们已经确定根节点就是这些元素中最小的那个,然后将这个节点和最后一个节点进行交换,去调整前n - 1个 阅读全文
摘要:
首先要注意,路由器有一个保护机制,就是不会无缘无故的接受陌生的IP发送过来的SYN包 NAT打洞机制: 1. 当前客户端A想和客户端B建立连接,服务器开了两个端口,一个是主连接端口,一个是辅助连接端口 2. 首先,A,B与主连接端口建立连接。这个时候A要和B建立连接,首先A要和协助端口建立连接,然后 阅读全文
摘要:
互斥锁 互斥锁的特性: 1. 原子性:当有一个线程成功拿到了这个锁,其他线程都无法在相同的时间拿到这个锁 2. 唯一性:在一个线程拿到锁的这段时间,只有当这个线程把锁释放掉,其他的线程才有可能拿到 3. 非繁忙等待性:如果一个线程已经锁定了一个互斥量,第二个线程又视图去拿到这个锁的前线,则第二个锁将 阅读全文
摘要:
冒泡排序 稳定 ,复杂度为n2 void mao(int a[], int n){ int i, j; for(i = 0; i < n; i++){ for(j = i; j < n; j++){ if(a[i] < a[j]){ swap(a[i], a[j]); } } } } 插入排序 稳定 阅读全文
摘要:
C++11 知识整理 对class的理解 答:首先,class 也是一种数据类型,只不过是可以由开发者自由定义的一种数据类型;可以用来封装成员变量和成员函数;支持抽象,继承,多态性;在定义数据类型的时候,private,public,也从一定程度上保证了数据的安全性 抽象性:含有纯虚函数的类被称为抽 阅读全文
摘要:
/************************************************************************* > File Name: http.c > Author: > Mail: > Created Time: 2019年09月30日 星期一 16时32分14秒 *************************... 阅读全文
摘要:
具体思路: 每次找一个基准数来调整数组中的元素,调整完之后i和j相遇的地方,左边都是小于等于基准数的,右边都是大于等于基准数的。 然后递归往下进行,直到只有一个元素 阅读全文
摘要:
分为小顶堆和大顶堆,小顶堆的性质是任何一个节点的两个字节点都比这个节点大,大顶堆相反 在建立大顶堆的时候,我的理解是先建立一颗假的小顶堆,建立完之后,每次根节点和堆顶进行交换(因为堆顶能保证堆顶为当前所有数的最小),然后将堆的大小减去1,这样在对规格为n-1的堆进行调整,直到堆的大小为1 然后调整完 阅读全文