
C++
文章平均质量分 86
君慕蓉
生活就像一条假装平静的小河
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高性能服务器框架
性能对服务器来说是至关重要的,毕竞每个客户都期望其请求能很快地得到响应。影响服务器性能的首要因素就是系统的硬件资源,比如 CPU的个数、速度,内存的大小等。不过由于硬件技术的飞速发展,现代服务器都不缺乏硬件资源。因此,我们需要考虑的主要问题是如何从"软环境"来提升服务器的性能。服务器的"软环境",一方面是指系统的软件资源,比如操作系统允许用户打开的最大文件描述符数量;另一方面指的就是服务器程序本身,即如何从编程的角度来确保服务器的性能,这是本节要讨论的问题原创 2021-03-18 23:57:36 · 281 阅读 · 0 评论 -
为云盘项目增加Mysql连接池
一般的应用程序都会访问到数据库,在程序访问数据库的时候,每一次数据访问请求都必须经过下面几个步骤:建立数据库连接,打开数据库,对数据库中的数据进行操作,关闭数据库连接。而建立数据库连接和打开数据库是一件很消耗资源并且费时的工作,如果在系统中很频繁的发生这种数据库连接,必然会影响到系统的性能,甚至会导致系统的崩溃。原创 2021-01-30 18:01:41 · 282 阅读 · 0 评论 -
并查集
一、什么是并查集概念:并查集由一个整型数组pre[ ]和两个函数find( )、join( )构成。数组pre[ ]记录了每个点的前导点是什么,函数find(x)用于查找,函数join(x,y)用于合并。作用:并查集的主要作用是求连通分支数(如果一个图中所有点都存在可达关系(直接或间接相连),则此图的连通分支数为1;如果此图有两大子图各自全部可达,则此图的连通分支数为2……)...原创 2021-01-13 11:43:00 · 773 阅读 · 2 评论 -
TCP实现文件传输
一直想着给之前的CloudDisk项目加上一个C/S架构的文件传输模块,因为之前是nginx+fastcgi架构的B/S架构,自己又不会前段代码,没有办法继续增加新的功能块。最近终于抽出时间开始写项目了,已经选用TCP完成linux下的CS架构文件上传功能模块,这里展示TCP文件传输模块。原创 2020-09-22 22:17:17 · 1537 阅读 · 0 评论 -
为CloudDisk项目加上log日志系统
鉴于该系统定位为分布式高并发大流量系统,所以有个记录操作和流量的日志是必要的。好吧,其实就是想练练手,把这个比较菜鸡的项目看起来不那么菜鸡。加的代码不多,直接看代码原创 2020-08-28 00:21:02 · 340 阅读 · 0 评论 -
用C++重构CloudDisk项目
附上项目地址[CloudDisk](https://github.com/82457097/CloudDisk);我已经在里面把需要的安装包都打包好了,一键安装脚本只完成了一半,慎用,不过很快就会完善它。之前是用c来完成功能的,现在想重新用C++重新架构一下,方便后续在上面增加功能。***我还是个刚入门萌新,分享的一些东西并不一定准确,还望大佬们多多指教。***原创 2020-08-27 23:51:31 · 503 阅读 · 0 评论 -
C++简单Socket模型
C++简单Socket模型原创 2020-04-26 12:39:03 · 252 阅读 · 0 评论 -
史上最全C/C++面试题汇总
总结一些常见面试题,包括准备面试查阅的和自己实际面试中遇到的。不建议全篇的去背面试题,要学会将面试的知识点进行分类总结,聚合成一块块的知识点,然后去学习串联,推荐《王道程序员面试宝典》这本求职复习书籍,应付一般小厂的面试绰绰有余,内容很全面,建议反复阅读记忆。原创 2020-04-20 23:29:22 · 26687 阅读 · 3 评论 -
C++关键字 ---- static
昨天看书看到了这一部分,感觉书上总结的很好。把我之前的认知成功的串联了一遍,也填补了很多不曾注意到的空白。以下总结内容参考《王道程序员求职宝典》,很不错的一本书,内容比较全面,还有搭配的真题训练很不多,认真看一遍受益很大。原创 2020-03-14 13:58:17 · 221 阅读 · 0 评论 -
C++内存和数组
C++基础全面复习原创 2020-03-09 16:43:36 · 336 阅读 · 0 评论 -
【LeetCode】螺旋矩阵
给定一个包含?m x n?个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12...原创 2020-02-10 21:40:56 · 247 阅读 · 0 评论 -
数据结构复习 ---- 排序(未完待续)
假设含有n个记录的序列为{r~1~,r~2~,......,r~n~},其相应的关键字分别为{k~1~,k~2~,......,k~n~},需确定1,2,......,n的一种排列p~1~,p~2~,......p~n~,使其相应的关键字分别满足k~p1~<=k~p2~<=......<=k~pn~非递减(或非递增)关系,即使得序列称为一个按关键字有序序列{r~p1~,r~p2~,......,r~pn~},这样的操作就称为排序。原创 2020-02-10 21:33:35 · 268 阅读 · 0 评论 -
数据结构复习 ---- 最小生成树之克鲁斯卡尔(Kruskal)算法
假设N=(V,{E})是连通网,则令最小生成树的初始状态为只有n个顶点而无边的非连通图T={V,{}},图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍去此边而选择下一条代价最小的边。依次类推,直至T中所有顶点都在同一连通分量上为止。原创 2020-02-05 15:19:49 · 701 阅读 · 2 评论 -
数据结构复习 ---- 最小生成树之普里姆(Prim)算法
Prim算法定义:假设N=(V,{E})是连通网,TE是N上最小生成树中边的集合;算法从U={u~0~}(u~0~∈V),TE={}开始;重复执行下述操作:在所有u∈U,v∈V-U的边(u,v)∈E中找一条代价最小的边(u~0~,v~0~)并入集合TE,同时v~0~并入U,直到U=V为止;此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树;该算法的时间复杂度为O(n^2^);原创 2020-02-03 15:52:20 · 819 阅读 · 0 评论 -
数据结构复习 ---- 广度优先遍历(BFS)
广度优先遍历(Breadth_First_Search),又称为广度优先搜索,简称BFS;如果说深度优先遍历类似树的前序遍历,那么广度优先遍历就类似于树的层序遍历;不过相对于深度优先遍历,广度优先遍历借助了一个队列来实现遍历的去重,看似复杂一些,其实也很好理解原创 2020-02-02 15:10:41 · 2022 阅读 · 0 评论 -
数据结构复习 ---- 深度优先遍历(DFS)
其实深度遍历的思路就是,利用图的顶点之间的邻接关系来遍历,为了防止重复遍历,给访问过的顶点打上tag;如果你对邻接表和邻接矩阵理解的比较透彻的话,深度优先遍历是很好理解的;针对邻接矩阵和邻接表两种存储方式的深度优先遍历来说,n个顶点,e个边的图,时间复杂度分别为O(n^2^)和O(n + e);所以如何做选择存储结构还是需要根据实际情况来看;;原创 2020-02-01 22:18:25 · 4080 阅读 · 0 评论 -
数据结构复习 ---- 邻接表
邻接表是一种数组与链表相结合的存储方式;用一个一维数组取存放图的顶点,记做顶点表;该数组中的每一个顶点的所有邻接点构成一个链表,无向图称该链表为该顶点的边表,有向图称该链表为该顶点作为弧尾的出边表;原创 2020-01-31 18:38:58 · 6537 阅读 · 1 评论 -
数据结构复习 ---- 邻接矩阵
这里要总结的邻接矩阵时关于图的邻接矩阵;图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图;一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息;原创 2020-01-31 17:08:07 · 5480 阅读 · 0 评论 -
数据结构复习 ---- 二叉树(一)
二叉树(Binary Tree)是n(n >= 0)个节点的有限集合,该集合或者空集(称为空二叉树),或者由一个根节点和两颗互不相交的、分别称为根节点的左子树和右子树的二叉树组成;原创 2020-01-28 22:03:55 · 538 阅读 · 0 评论 -
数据结构复习 ---- 栈和队列
其实栈和队列的链式存储方式就是链表的改型,操作其实和链表的基本操作没什么区别,无非就是插入和删除节点;当然栈和队列也有顺序存储结构,队列也还有循环队列等一些特殊结构,后面再做总结;这两种数据结构有其鲜明的结构特点,栈的先进后出,队列的先进先出,都能在特定的数据处理场景下大放光彩;这两种数据结构也相对比较简单,算是线性表的一种扩展结构;原创 2020-01-27 18:29:03 · 434 阅读 · 0 评论 -
数据结构复习 ---- 链表(一)
总结一些经验,对比链表这种链式存储结构和数组等一些顺序存储结构,其优势在于插入和删除比较方便,不影响其他的节点数据,但是也因为他不是一种连续的存储形式,在查找时需要遍历,所以选择使用哪种数据结构也要根据实际需要来权衡选择。没有最优的数据结构,只有最合适的数据结构。原创 2020-01-27 15:01:35 · 669 阅读 · 0 评论 -
初探C++内存池项目 ---(二)内存池的实现及原理详解
内存池是池化技术中的一种形式。通常我们在编写程序的时候回使用 new delete 这些关键字来向操作系统申请内存,而这样造成的后果就是每次申请内存和释放内存的时候,都需要和操作系统的系统调用打交道,从堆中分配所需的内存。如果这样的操作太过频繁,就会找成大量的内存碎片进而降低内存的分配性能,甚至出现内存分配失败的情况。原创 2020-01-11 13:19:59 · 680 阅读 · 0 评论 -
初探C++内存池项目 ---(一)链式栈的实现和原理详解
C++内存池项目学习总结及经验分享~原创 2020-01-05 17:02:06 · 574 阅读 · 0 评论 -
工欲善其事,必先利其器!(如何在Window上读写Linux项目)
接触过C/C++的都知道,写一些C/C++项目的时候,避免不了跟Linux打交道,网上很多的项目,都是一些基于Linux的服务。当我们想学习这些项目的时候,如果没有一套方便读写代码的工具,那将会让你举步维艰。这篇文章主要和大家分享一下我自己用的一套工具,以及环境的搭建方法~原创 2020-01-01 15:50:56 · 593 阅读 · 0 评论