自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大秦坑王的专栏

专注Linux C/C++和Java软件开发学习

  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ thread线程函数传参原理剖析

通过C++ Thread类库源码剖析thread线程函数传参原理

2023-03-18 23:07:58 2669 10

原创 记C++集群服务器项目消息中间件编程大家遇到的两个Bug

bug 1. 向消息中间件PUBLISH发布消息不成功,导致无法跨服务器通信bug 2. 多次向中间件SUBSCRIBE订阅消息,出现无响应,客户端也无响应问题背景以redis的发布-订阅机制作为集群服务器的消息中间件,解耦服务器之间的通信。用hiredis做客户端编程。Bug1两个客户端C1和C2分别登录在两台服务器S1和S2上,服务器通过redis作为消息中间件进行消息通信。当客户端...

2019-07-31 13:14:10 3958 7

原创 Java代码 - 基于广度优先遍历实现迷宫路径搜索(搜索迷宫的最短路径信息)

上一篇文章演示了通过深度优先遍历搜索迷宫路径,无法得到最短的迷宫路径,那么通过广度优先遍历,层层向外扩张的方式,可以找到迷宫最优的路径信息,借助一个队列实现广度优先遍历层层向外扩张的思想,再借助一个数组打印节点的行走信息,代码运行如下:请输入迷宫的行列数:5 5请输入迷宫路径0 0 1 1 1 1 0 0 0 01 0 0 0 01 1 0 1 11 1 0 0 0迷宫路径搜索结果...

2019-05-20 15:18:39 1935 1

原创 Java代码 - 基于深度优先遍历实现迷宫路径搜索

本文介绍用Java语言实现**迷宫路径的深度优先搜索**,采用非递归代码实现,找一条从左上角节点到右下角节点的可通行的路径信息,如果路径存在,打印出路径信息,否则打印迷宫不存在可同行的路径。另外代码只实现了迷宫路径搜索的算法,没有添加图形界面的实现。深度优先遍历迷宫路径,是在每一个节点都按照固定的方向往下一个节点行走,在遍历的过程中,除非该方向走不通,否则是不会检查节点其它方向的可行走状态,代码运行如下:

2019-05-20 15:17:18 1985 1

原创 Java代码 - 求解四则运算表达式

【Java实现】 输出代码,求解10以内整数的四则运算表达式。实现思路就是使用一个数字栈存储表达式中遍历的数字,一个符号栈存储表达式中的符号,根据符号的优先级,判断是符号入栈,还是进行运算,具体的代码实现如下:public static void main(String[] args) { String expression = "9-2*(4+6/2)*2"; // 数字栈 ...

2019-05-18 15:07:20 1133

原创 C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

2019-05-17 16:57:11 1918 1

原创 Java版基础数据结构算法 - 单链表和双向链表、顺序栈和链式栈、循环队列和链式队列

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录数组和链表单链表代码实现链表逆置寻找链表倒数第K个节点判断链表是否有环,并且找出入环节点合并两个有序单链表双向链表代码实现数组和链表在大家接触链表之前,都大量的使用过数组,数组有‘1好2不好’,怎么解释呢?1好是,数组的内存是绝对连续的,因此数组的...

2019-05-16 13:02:11 1071

原创 Java版高级数据结构算法 - Dijkstra迪杰斯特拉算法

Dijkstra算法是典型的单源最短路径算法,用于计算带权图中一个节点到其它所有节点的最短路径,主要特点是以起始点为中心向外层层扩张,直到扩展到重点为止。算法描述Dijkstra算法的思想是,设G=(V,E)是一个带权有向图,把图中顶点集合V分成两...

2019-05-10 18:18:13 411 1

原创 Java版高级数据结构算法 - 有向图的深度遍历、广度遍历、不带权值最短路径求解

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录图的顶点类型定义图的类型定义从文件中读取图的顶点和路径信息创建邻接表图的深度优先遍历DFS图的广度优先遍历BFS最短路径求解深度优先遍历、广度优先遍历,最短路径代码测试这篇文章主要输出完整的有向图的相关代码,关于无向图和有向图的理论,很多数据结构的书籍...

2019-05-10 18:02:29 1814 1

原创 Java版高级数据结构算法 - 动态规划算法(解决常见笔试面试题)

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录...

2019-05-10 14:57:29 1030

原创 Java版高级数据结构算法 - 回溯算法之排列树(八皇后问题)

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录排列树手写八皇后问题排列树解空间就是问题所有解的可能取值构成的空间,一个问题的解往往包含了得到这个解的每一步,就是对应解空间树中一条从根节点到叶子节点的路径。排列树就代表了一类问题的解空间,它并不是真实存在的数据结构,也就是说并不是真的有一颗这样的...

2019-05-10 12:33:59 628 2

原创 Java版高级数据结构算法 - 回溯算法之子集树(解决常见面试问题)

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!子集树...

2019-05-09 15:30:30 1199

原创 Java版高级数据结构算法 - 跳跃表

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!跳跃表的实现红黑树实现了一颗高效的二叉查找树,其增删查的时间复杂度达到了O(log2n)O(log_2n)O(log2​n),但是红黑树的增加和删除操作,其代码实现起来,还是稍微有一些复杂的(当然如果你理解透彻其原理,实现起来也很easy),那么跳跃表就是以一...

2019-05-09 14:58:56 475

原创 VS2017搭建Linux项目开发环境

这篇文章主要介绍如何在VS2017下面创建Linux平台项目工程,方便在Linux环境下开发C/C++项目。微软的宇宙世界第一IDE:VS2017,新增了创建Linux系统跨平台项目,可以在windows系统上使用VS工具,远程编写Linux项目代码,并且支持代码远程调试,代码提示,代码高亮等操作,极大的方便了Linux项目开发,本文档就VS2017如何创建Linux项目进行详细说明。卸载旧版...

2019-04-23 13:39:13 4364

原创 Java版高级数据结构算法 - 红黑树

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录红黑树的定义红黑树的左旋和右旋红黑树的插入操作红黑树的删除操作红黑树的定义AVL树为了维护二叉排序树的平衡,在插入和删除时做了大量的旋转操作,当数据量大了以后,AVL树的旋转操作就拖慢了插入和删除的时间。有一种2-3-4树,是一颗完全平衡的树,所有的叶...

2019-04-16 14:34:22 866

原创 Java版高级数据结构算法 - AVL树

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录AVL树的定义AVL树的四种旋转操作AVL树的插入操作AVL树的删除操作AVL树的定义BST树最差的情况下,就退化成一条链表了,增删查的时间复杂度就无法达到O(log2n)O(log_2n)O(log2​n),AVL树在BST的基础上,加入了节点左右子树...

2019-04-15 21:14:46 467

原创 Java版高级数据结构算法 - BST树

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录二分查找BST二叉搜索树BST树插入,删除,查询操作,递归和非递归实现BST树前序,中序,后序,层序遍历,递归和非递归实现BST树求树的高度,节点元素个数BST树区间元素查找BST求子树问题BST的LCA问题:求寻找最近公共祖先节点BST树的镜像反转问题BS...

2019-04-15 19:12:21 812

原创 C++迭代器iterator详解

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录迭代器概念iterator迭代器实现容器迭代器失效问题const_iterator迭代器实现reverse_iterator迭代器实现const_reverse_iterator迭代器实现insert插入型迭代器流迭代器迭代器概念最近有人春招面试互联网大...

2019-04-12 01:37:52 23412

原创 C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装

Muduo is a multithreaded C++ network library based on the reactor pattern. muduo库的介绍就是:一个基于reactor反应堆模型的多线程C++网络库。muduo网络库是C++语言开发的一个非常优秀的网络库,作者陈硕,muduo网络库在多线程环境下性能非常高,该系列文章会分享一些muduo库源码的知识,包括它的线程池源码...

2019-04-05 00:51:20 16422 54

原创 C++网络编程 - Boost::asio异步网络编程 - 01- boost库源码编译安装

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录如果需要录屏资料,请私信邮箱[email protected]获取。...

2019-04-04 14:46:05 9333 28

原创 C++智能指针的enable_shared_from_this和shared_from_this机制

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录问题代码代码清单1代码清单2shared_ptr原理分析如果不熟悉C++带引用计数的智能指针shared_ptr和weak_ptr,请参考我的另一篇介绍智能指针的博客:https://blog.csdn.net/QIANGWEIYUAN/article/d...

2019-04-02 18:40:43 9318 4

原创 C++11 - thread多线程编程,线程互斥和同步通信,死锁问题分析解决

c++11 thread线程库使用,线程互斥,互斥锁,死锁问题分析定位

2019-04-01 11:31:02 19090 6

原创 C++STL容器内容总结

C++ STL容器使用,原理剖析总结目录如果需要录屏资料,请私信邮箱[email protected]获取。...

2019-03-29 16:06:00 4467

原创 C++海量数据处理 - 查重和top k问题的代码分析,Bloom Filter布隆过滤器

C++海量数据处理,查重和top k问题代码,bloom filter布隆过滤器详解

2019-03-27 17:58:14 2494 1

原创 C++设计模式 - 迭代器模式

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录设计模式概念迭代器模式简介迭代器模式代码示例设计模式概念设计模式简单来说就是在解决某一类问题场景时,有既定的,优秀的代码框架可以直接使用,与我们自己摸索出来的问题解决之道相比较,有以下优点可取:代码更易于维护,代码的可读性,复用性,可移植性,健壮性会...

2019-03-26 16:10:22 1076

原创 C++设计模式 - 简单工厂,工厂方法和抽象工厂

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录如果需要录屏资料,请私信邮箱[email protected]获取。...

2019-03-26 11:18:27 1766 1

原创 C++设计模式 - 观察者Observer模式

C++面向对象设计模式之观察者模式

2019-03-25 13:31:05 2878 2

原创 C++STL - 容器空间配置器allocator的原理

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录实现一个简单的vector容器容器面临的问题空间配置器介绍实现带空间配置器的vector容器SGI STL一级,二级空间配置器的实现实现一个简单的vector容器C++ STL所有容器的实现都需要依赖一个空间配置器allocator,虽然我们平时使用容器...

2019-03-22 15:42:35 3664 2

原创 C++设计模式 - 单例模式

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!设计模式概念设计模式简单来说就是在解决某一类问题场景时,有既定的,优秀的代码框架可以直接使用,与我们自己摸索出来的问题解决之道相比较,有以下优点可取:代码更易于维护,代码的可读性,复用性,可移植性,健壮性会更好当软件原有需求有变更或者增加新的需求时,合理...

2019-03-20 14:42:56 2613 2

原创 深入掌握C++智能指针

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录智能指针介绍自己实现智能指针不带引用计数的智能指针带引用计数的智能指针多线程访问共享对象问题自定义删除器智能指针介绍学习C++的人,一直在接触裸指针,一边感受着它的强大,一边感受着它的坑爹。当然,坑不坑爹在于开发者,指针本身近乎完美,但奈何用的人比较猥琐...

2019-03-20 14:42:20 7342 6

原创 C++11 - 右值引用

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!...

2019-03-20 14:41:08 4073 11

空空如也

空空如也

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

TA关注的人

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