自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一种消息注册的简单的实现

看了actor模型的消息注册的源码,它的实现理解了一点。特地在这些写下自己理解之后写的一段小代码。我们把我们需要注册的消息放到一个map里面保存。每一条消息对应一个消息码。这样我们可以把消息存到map里面。然后有一个统一的handler的处理方式。只处理消息码,消息码通过map来执行相关的消息函数。#include#include#includeusing namespace std;...

2019-05-31 01:01:00 312

原创 求最小的第K个数

算法分析:除了排序。大小堆,还可以用排序的算法。我们每次以一个基准元素进行快速排序,排序完之后,看这个基准元素的位置是否为K位置,如果大于K,那么说明第k 小的元素在基准元素的左边。然后从右边选取基准元素进行快排。如果小于K,算法相反#include#include#include#includeusing namespace std;void quickSort(vec...

2019-05-29 23:50:44 491

原创 数据库链接池和多线程数据库加载

#include#include “mysql_connection.h”#include “mysql_driver.h”#include “cppconn/statement.h”#include “cppconn/resultset.h”#include “cppconn/prepared_statement.h”#include “cppconn/connection.h”...

2019-05-29 08:30:59 148

原创 Leetcode-965 Univalued Binary Tree

(1)算法分析:获取头节点的值。把头结点的值带入函数进行比较。当某个节点有左子树,进入左子树比较。当有右子树的时候,进入右子树比较。#include#include#includeusing namespace std;struct Node{int val;Node *lChild;Node *rChild;Node(int val, Node *l = nul...

2019-05-28 22:12:48 66

原创 字符串分割

给定一种规则1–A、2–B、3–C…26–Z给定一个数字的序列,判断它可以有多少种字符串组成。比如123。那么可以分为 1 2 3、12 3、1 23。三种,但是127,1 2 7、12 7两种。111可以分割为1 1 1 、 11 1 、1 111 1 1 1。11 11。 1 11 1。算法分析:(1)我们保留遍历字符的前一个字符,如果前一个字符是1,那么前一个字符即可以和遍历的...

2019-05-27 23:22:10 106

原创 各定一个只包含数字的字符串,对其进行分割,求能被分割的数字的能被3整除的数量

题目大意,比如一个字符串“12345” 最大。分割成12 3 45。分割成这样三个,三个数都被3整除。算法分析:(1)分析可得各个数字之和能被三整除即可。就可以判断该数字可以被三整除。当遇到3,6,9的时候,我们可以直接在总数量+1(2)当遇到不能被三整除的数字的时候,我们统计该数字除以3的余数,并且累加,直到该数字可以被三整除,然后总数量+1.整体代码实现如下:#includeusi...

2019-05-26 22:39:33 1013 1

原创 House Robber 打家劫舍

#include#include#include#includeusing namespace std;int maxT(int a, int b){if (a > b){return a;}return b;}int maxRobber(int intarr[], int length){vector nums{ intarr[0],maxT(intarr[0...

2019-05-26 00:37:34 71

原创 利用protobuf和zmq实现网络通信

经过不短时间的调试,终于搞定了protobuf和zmq两个第三方库的编译和使用,并且参考往事前辈的代码编写了两者之间的通信demo。protobuf的编译和使用,前面有篇博客已经讲了。zmq的编译我用的是zeromq-4.2.3这个可以在vs2015下面编译通过。然后在zeromq-4.2.3_test\bin\Win32\Debug\v140\dynamic会生成lib和d...

2019-05-25 08:11:07 2777

原创 leetcode 653. Two Sum IV - Input is a BST

#include#include#includeusing namespace std;struct Node{int val;Node *lChild;Node *rChild;Node(int val,Node *l = nullptr, Node *r = nullptr){this->val = val;this->lChild = l;this-&g...

2019-05-25 01:36:08 68

原创 C++11新特性 右值引用

右值引用左值变量是可以作为左值的的量。数字是没办法作为左值。右值变量一般是常量才可以作为右值。右值引用是对常量的引用比如i=1,int &a=i,a是左值引用,因为i是个左值。int &&a=45 a就是右值引用。因为45是个右值。我们可以实现如下函数#include#includeusing namespace std;...

2019-05-24 00:14:47 135

原创 求一个二叉树的最下层最左边的节点

如下图所示:求出上述二叉树最下层最左边的节点。我们给二叉树的每个节点加上一个层数的变量。层数为父亲节点的层数+1#include#includeusing namespace std;struct Node{int val;int level = 0;Node *lChild;Node *rChild;Node(int val,int level,Node *l ...

2019-05-23 00:24:16 2412

转载 protbuf的使用和编译过程

https://blog.csdn.net/m32692529/article/details/79017144这篇博客提供了比较好用的vs2015 的编译版本,而且编译的步骤非常详细我的helloworld.proto输入下面的数据:message helloworld { required int32 id = 1; // ID required string str = 2...

2019-05-22 00:32:46 189

原创 实现string函数的replace的作用

string str1 = "abcdefghdef";string str2 = “def”;string str3 = “123456”;题目大意就是把str1字符串里面的def都替换为123456。(1)算法分析,我们可以充分利用string的函数库的作用。string的find函数可以找到def第一个存在的位置pos,那么我们可以知道0-pos是我们需要的字符串。0-pos之...

2019-05-20 23:41:25 1257 2

原创 boost库学习(1)解析配置文件和命令行参数

boost库作为C++的准标准库,在命令行解析的方面有着得天独厚的优势。(1)解析配置文件:我们的配置文件为:[setting]policy_listen_port=4045data_listen_port=9000archives_id=6room_num=0thread_num=789456insert_chat_to_db=1我们需要解析出来,从而为后面的C++的处理...

2019-05-19 21:40:06 694

原创 一种有意思的单例的实现模式

1.简单易懂#includeusing namespace std;class Base;templateclass Singletest:public T{public:static T &getInstance();private:Singletest(){}~Singletest(){}};class Base{public:void set(...

2019-05-18 23:07:03 57

原创 给定一个字符串,删除字符串里面的回文属性

比如一个字符串abcdedeth,在字符串中可以看到ded是一个回文字符串,我们编写代码删除一些字符,使得字符串不存在回文属性的子字符串。(1)算法分析:我们可以充分利用字符串回文的属性,假设abcde是我们处理好的不具备回文属性的字符串。当下一个字母再进来的时候。我们需要怎么处理呢?观察abcde字符串,当来的字母如果和abcde构成回文的的话,那么构成回文只存在两种情况(1)abcdee和...

2019-05-18 00:43:26 767

原创 我的线程池

#include#include#include#include#includeusing namespace std;class ThreadPool;class Task{public:Task(int val) :value(val) {}void run(){cout << value << " " << std::this_t...

2019-05-17 00:12:07 47

原创 leetcode404 sum of Left Leaves

求一个二叉树的所有左节点为叶子节点的和。算法分析:(1)一个节点,当存在左子树的时候,进入计算,判断该节点是否为叶子节点。是的话,进行计算。当存在右子树的时候,判断该节点的右子树是否存在左子树,存在,则进行上述的计算。(2)对每个节点都要进行上述的操作。为了累计计算结果,我们用引用来保存计算结果。代码如下:#includeusing namespace std;struct ...

2019-05-15 22:57:41 75

转载 智能指针循环引用导致的问题

#include #include using namespace std;class Child;class Parent;class Parent{private://std::shared_ptr ChildPtr;std::weak_ptr ChildPtr;public:void setChild(std::shared_ptr child){this->...

2019-05-15 01:12:46 136

原创 字符串转数字

给定一个字符串,把它转换成数字。要考虑字符串为空,异常字符等多种情况。算法分析;我们定义一个函数,返回bool类型,来确认是否转换成功。我们在函数参数列表中,引用要存储的数字。当int型超过最大的长度的时候记得判断是否溢出。#includeusing namespace std;bool str2Int(char *ch, int &sum){long long n...

2019-05-13 22:58:07 462

原创 给定一个链表,在这个链表之间插入加或者减号,使得链表的数据等于一个数

比如链表的数据是1,2,3,4,5 加入加号或者减号 12+3-4+5=16,描述就是这样。求一共多少种方法使得链表等于一个数。算法分析:我们可以采用暴力分析的办法,从头到尾挨个验证。当走到尾节点还没等于我们的目标值,直接返回,重新计算即可。代码如下:#include#include#includeusing namespace std;struct Node{int va...

2019-05-12 21:05:38 473

原创 线程同步和加锁的机制

#include#include#include#include<Windows.h>using namespace std;int counter = 0;std::mutex mtx;void func1(){while (true){//Sleep(1);//std::unique_lockstd::mutex lock(mtx);if (counter...

2019-05-11 22:05:33 507

原创 基于多线程的单例模式

当一个单例被多个线程获取的时候,如果不做相关的处理,可能导致,单例被重复创建,导致出现不可知的问题。我们在获取单例的时候,对单例是否flag创建进行判断,当单例创建了,则直接返回单例。没有创建的时候,加了一个锁,先创建,并把flag置位true。返回创建的单例模式即可。代码如下:#include#include#include#includeusing namespace std;...

2019-05-11 21:04:41 86

原创 LeetCode 863.,二叉树中所有距离为 K 的结点

题目大意:给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为 2 ...

2019-05-01 18:34:21 420

空空如也

空空如也

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

TA关注的人

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