摘要:
先给出整个项目的结构图: 一、环境搭建 施磊的c++聊天项目。相信已经到了这部分内容就已经能够自行搭建环境了,这里主要给出搭建的具体内容,方法自行百度。下面给出环境要求。 1.json-cpp 2.muduo库 3.cmake 4.mysql 二、CMake编写 主目 阅读全文
摘要:
一、CMake简介 使用简单方便,可以跨平台,构建项目编译环境。尤其比直接写Makefile简单(在构建大型工程编译 时,需要写大量的文件依赖关系),可以通过简单的CMake生成负责的Makefile文件。 二、CMake安装 ubuntu上直接执行 sudo apt install cma 阅读全文
摘要:
一、使三个字符串相等 给你三个字符串 s1、s2 和 s3。 你可以根据需要对这三个字符串执行以下操作 任意次数 。 在每次操作中,你可以选择其中一个长度至少为 2 的字符串 并删除其 最右位置上 的字符。 如果存在某种方法能够使这三个字符串相等,请返回使它们相等所需的 最小 操作次数;否则,返回 阅读全文
摘要:
一、Reactor模式 Reactor 翻译过来的意思是「反应堆」,这里的反应指的是「对事件反应」,也就是来了一个事件,Reactor 就有相对应的反应/响应。 事实上,Reactor 模式也叫 Dispatcher 模式,我觉得这个名字更贴合该模式的含义,即 I/O 多路复用监听事件,收到 阅读全文
摘要:
一、互斥锁和自旋锁 互斥锁: 最底层的两种就是会「互斥锁和自旋锁」,有很多高级的锁都是基于它们实现的,可以认为它们是各种锁的地基,所以我们必须清楚它俩之间的区别和应用。 加锁的目的就是保证共享资源在任意时间里,只有一个线程访问,这样就可以避免多线程导致共享数据错乱的问题。 当已经有一个线 阅读全文
摘要:
一、管道 一个进程: 所谓的管道,就是内核里面的一串缓存。从管道的一段写入的数据,实际上是缓存在内核中的,另一端读取,也就是从内核中读取这段数据。另外,管道传输的数据是无格式的流且大小受限。 父子进程: 创建的子进程会复制父进程的文件描述符,这样就做到了两个进程各有两个「 f 阅读全文
摘要:
今天来解析一下一道中等的leetcode题,题目如下: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1 阅读全文
摘要:
一、进程 我们编写的代码只是一个存储在硬盘的静态文件,通过编译后就会生成二进制可执行文件,当我们运行这个可执行文件后,它会被装载到内存中,接着 CPU 会执行程序中的每一条指令,那么这个运行中的程序,就被称为「进程」(Process)。 当进程要从硬盘读取数据时,CPU 不需要阻塞等待数据的 阅读全文
摘要:
一.IP基本认识 IP在TCP/IP模型中处于第三层,也就是网络层。 网络层的主要作用:实现主机与主机之间的通信,也叫点对点通信。 网络层与数据链路层有什么关系? 在上面我们知道IP的作用是主机之间通信用的。而MAC的作用则是直连的两个设备之间通信,而IP则负责在没有直连的两个网络之间进 阅读全文
摘要:
100115.找到冠军Ⅰ 一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。 给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0 <= i, j <= n - 1 且 i != j 的所有 i, j :如果 grid[i][j] == 1,那么 i 阅读全文