自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 c++多线程生产者消费者模型以及读写锁实现

本文首发于我的公众号:码农手札,主要介绍linux下c++开发的知识包括网络编程的知识同时也会介绍一些有趣的算法题,欢迎大家关注,利用碎片时间学习一些编程知识,冰冻三尺非一日之寒,让我们一起加油!前言最近在学习操作系统的知识,又看到了经典的并发模型,不得不说在多线程编程中,最好使用一些已经被验证过的正确的模型,其中生产者消费者模型就是典型的成功模型,值得学习,其实之前我也写过生产者消费者的实现...

2020-02-17 23:09:40 714

原创 tcp半连接和全连接学习笔记

本文首发于我的公众号:码农手札,主要介绍linux下c++开发的知识包括网络编程的知识同时也会介绍一些有趣的算法题,欢迎大家关注,利用碎片时间学习一些编程知识,冰冻三尺非一日之寒,让我们一起加油!前言最近还是在学习tcp相关的东西,这次想要总结的是tcp半连接和全连接的一些东西warm-up先简单回复下tcp三次握手,客户端首先通过发送SYN请求向处于监听状态的服务器发起连接,在经典的实现...

2020-01-29 17:42:43 968

原创 median of sorted arrays(排序数组中位数)题解

本文首发于我的公众号:码农手札,主要介绍linux下c++开发的知识包括网络编程的知识同时也会介绍一些有趣的算法题,欢迎大家关注,利用碎片时间学习一些编程知识,冰冻三尺非一日之寒,让我们一起加油!前言median of sorted arrays排序数组的中位数,相信大家基本都听说过这道题的大名,一般面试的话面试官想要加大难度这道题是个很好的选择,说实话这道题我一直是很有畏惧感的,因为我觉得这...

2020-01-28 22:45:28 224

原创 一个简单的线程安全的LRU_Cache实现

前言实习过程中遇到一个场景,在多线程下用到一个缓存当前分析的结果的map,当时只是用了一个map来解决这个问题,但是当时就觉得这个办法不是很好,因为分析结果基本上是很快就会被更新掉的,但是如果一个结果被用到,说明其很可能会被继续用到,分析了一下场景,我们就能很明了的想到,应该是用LRU来解决这个问题,LRU是一种被广泛使用的缓存算法,在操作系统以及一些开源的库中都能见到其身影,这里我们也对LRU...

2019-11-21 21:38:09 1742 1

原创 打赌你一定能看懂的二叉树前、中、后序非递归遍历

本文首发于我的公众号:码农手札,主要介绍linux下c++开发的知识包括网络编程的知识同时也会介绍一些有趣的算法题,欢迎大家关注,利用碎片时间学习一些编程知识,冰冻三尺非一日之寒,让我们一起加油!前言好久没写, 忙于实习以及晚上刷刷题, 这次来写一下平时很多人都很畏惧的二叉树非递归遍历,说实话,我自己也挺怕递归转成非递归的,因为有些转起来比较简单,有些转起来就很困难了,这次我们来试试二叉树的非...

2019-11-18 11:18:42 117

原创 为什么cpp的模板声明和实现要放在一个文件

前言本文首发于我的公众号:码农手札,主要介绍linux下c++开发的知识包括网络编程的知识同时也会介绍一些有趣的算法题,欢迎大家关注,利用碎片时间学习一些编程知识,冰冻三尺非一日之寒,让我们一起加油!说实话,我个人是不怎么使用模板的,使用场景很少,因此在上一篇博客里面难得用了一次模板,反而出了点小问题,我遇到的问题就是把声明和实现分开在h文件和cpp文件,因此在编译的时候怎么都无法通过,简直懵...

2019-11-16 10:12:23 753

原创 c++中单例模式实现总结

前言最近个人在写一些小的练手的项目,发现单例模式的应用实在是很广泛,很多情况下一个类都需要使用单例模式来实现,因此这里我再度总结一下单例模式的实现,之前已经总结过一次,当时的例子给的是muduo的单例模式实现,这次再给出几种其他的实现,同时进行一下比较。饿汉模式饿汉模式就是在还未使用变量的时候,已经对该变量进行赋值,有点类似很饥饿的感觉,在main函数开始执行前就已经初始化好了,因此是线程安...

2019-11-08 20:22:45 243

原创 面试常见单链表排序问题的解法

简介给定一个单链表的头节点,要将该链表排序. 这个问题的解法实际上有很多,这里我主要写一下快排的实现.值得注意的是,我们这里用的是值交换,并不是指针交换,对于单链表问题有时候使用值交换是非常方便的,避免了很多的指针操作.思路办法实际上不难,我们回忆一下快排的思路,先选取一个key,然后以key为标准,将数组划分为两个子数组,一个子数组的所有值都小于key,另一个子数组的所有值都大于等于key...

2019-11-04 20:18:23 159

原创 FEC-Reed-Solomon算法浅析(一)

前言本文是介绍FEC-Reed—Solomon算法的第一篇,主要介绍伽罗华域的相关知识,因为这个伽罗华域算是这个算法能够广泛被应用在网络通信的大功臣来,我们先来看看伽罗华域是什么。先介绍下创造这个域的人,伽罗华(也译作伽瓦罗),法国数学家,群论的创立者。用群论彻底解决了根式求解代数方程的问题,而且由此发展了一整套关于群和域的理论。这个人比较悲惨的是他死于与其他人的决斗当中,不得不说有点可惜。好了...

2019-10-26 20:37:02 2771

原创 FEC-Reed-Solomon算法浅析(一)

#### 前言本文是介绍FEC-Reed—Solomon算法的第一篇,主要介绍伽罗华域的相关知识,因为这个伽罗华域算是这个算法能够广泛被应用在网络通信的大功臣来,我们先来看看伽罗华域是什么。先介绍下创造这个域的人,伽罗华(也译作伽瓦罗),法国数学家,群论的创立者。用群论彻底解决了根式求解代数方程的问题,而且由此发展了一整套关于群和域的理论。这个人比较悲惨的是他死于与其他人的决斗当中,不得不说有...

2019-10-26 20:36:05 1092 4

原创 记Mac升级到10.15即Catalina,之后突然c++头文件无法找到且gcc和clang无法使用

昨天升级了一下mac的新系统Catalina,这一升级之后今天早上起来发现出问题了,怎么c++头文件都找不到了,然后在终端去输入clang或者gcc命令,发现都没有办法打开,直接报错:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Libr...

2019-10-25 09:52:31 2993

原创 windows平台下lib文件及dll文件的使用

最近在实习,做了一个小的项目, 这里用到了一些lib的库以及dll的库,这里我记录一下自己的配置的方式,为以后做个准备吧,估计以后也会遇到这样的问题,避免遗忘。首先,我们需要知道lib文件和dll文件是什么东西,这里我不具体介绍,具体的信息大家可以去找一些书籍看看,这里我做个简单的介绍,lib文件是windows平台下的静态库,dll文件是windows平台下的动态链接库,这两个概念我稍微解...

2018-12-13 11:18:15 1729

原创 探究C++单例模式

最近又拾起了以前找实习看的东西, 看到了一篇博客写C++单例模式觉得很不错, 但是写的有点点杂乱, 这里我自己再总结一番. 参考的博客链接在这:探究C++单例模式饿汉模式饿汉模式是指单例的实例在程序运行的一开始就立即被初始化, 简单代码如下所示:class Singleton{public:    static Singl...

2018-12-04 09:29:54 116

原创 自己实现的一个smallstring

自己实现的smallstring类一个简单的string类,具有string基本的功能,用来练练手复习c++的基础知识.思路较为简单,没有很复杂的地方 header文件如下:#ifndef SAMLLSTRING_H_#define SAMLLSTRING_H_#include <istream>namespace SmallString{ class String {

2017-04-23 09:59:25 352

原创 文章标题

STL源码分析2.12.1.1设计一个简单的空间配置器#ifndef SIMPLESTL_H_#define SIMPLESTL_H_#include <new>#include <cstddef>#include <cstdlib>#include <climits>#include <iostream>namespace JJ{ template<typename T>

2017-04-22 16:42:28 204

原创 查找四位数的吸血鬼数字(java编程思想)

查找所有四位数的吸血鬼数字,代码如下:public static void main(String[] args) {for(int i = 10;ifor(int j = 10;jif(i*jcontinue;int[] a = new int[4];//用来记录两个二位数的四位数字a[0] = i/10;a[1] = i-10*a[0];a[2] = j/1

2017-02-09 11:26:07 462

原创 记录一下解决JRE System Library(nobound)的问题

由于自己重新安装了一下jdk,导致原先的JRE System Library 无法找到,后来在stack overflow上面找到了对应的解决办法,记录下来,给自己看,也给大家看看.点击项目的属性(Properties),然后点击Java Build Path,选择Libraries,如果找不到JRE System Library的话,会有提示nobound的,接下来的解决办法是

2017-02-08 11:07:56 1126

原创 自己配置ant的过程

这次是自己在看java编程思想的时候看到的ant,于是乎,打算自己来配置一次.开始的过程不是很顺利,因为自己原先的那个jdk环境没配置好.后来发现是因为自己路径不对的原因,所以自己又重新安装了一遍,终于成功.接下来是配置ant的步骤,参考了一些大牛的配置过程.http://www.cnblogs.com/hoojo/archive/2013/06/14/java_ant_project_tar

2017-02-07 22:53:28 754

原创 算法竞赛入门经典第二章习题

习题2-1 水仙花数#include #include using namespace std;int main(){int a = 0, b = 0, c = 0;for (int i = 100; i {a = floor(i / 100);b = floor((i - 100 * a) / 10);c = i - 100 * a - 10

2016-09-18 15:10:47 244

原创 c++ primer 5ed 15.9文本查询程序再探

c++ primer 5ed 上15.9节文本查询程序再探 书本上的代码基本上只给了大概的思路和比较核心的一些代码,但是并没有具体的实现,所以我在参考了书上代码和网上的一些代码,勉强算是完成了这个程序,相信有很多不足和值得改进的地方,希望和大家交流一下并共同提高.参考文章地址:https://github.com/Mooophy/Cpp-Primer/tree/master/ch15/ex15.34.35.36.38

2016-08-06 09:18:29 753

原创 第一次自己比较的独立编写一个程序

自己个人初学的一些体会吧,刚开始接触,只是为了加深一下自己的印象

2015-12-05 00:51:17 489

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除