自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unreal显示鼠标

Unreal运行时显示鼠标#include "kismet/GameplayStatic.h"#include "GameFrameWork/PlayerController.h"APlayerController* PlayerController = UGamePlayStatics::GetPlayerController(GetWorld(), 0);PlayerController->bShowMouseCursor = true;

2022-05-11 15:39:09 322

原创 UMG隐藏显示控件

UMG隐藏显示控件在UMG中蓝图中需要将控件设置为Variable 才能在代码中访问C++中//TestButton为按钮的命名//隐藏控件TestButton->SetVisibility(ESlateVisibility::Hidden)//显示控件TestButton->SetVisibility(ESlateVisibility::Visible)UnLua中--TestButton为按钮的命名--隐藏控件local hidden = UE.ESlateVi

2022-05-11 10:37:09 1217

原创 MongoDB Sharding

MongoDB ShardingSharding结构replica setmmapChunk的分裂和迁移Chunk的分裂Chunk的迁移Sharding结构转载自https://www.it610.com/article/5487366.htm从图中可以看出,MongoDB sharding 主要分为 3 大部分。shard 节点、config 节点和 mongos节点。对客户端来说,直接访问的是 图中绿色的 mongos 节点。背后的 config 节点和 shard 节点是客户端不能直接访问的。

2022-04-28 22:50:11 1396

原创 c++回溯法模板

c++ 回溯法模板 根据不同问题修改一点就行void backtrack(type solution[],int t){ /* 判断递归结束 是否全部解决 if(...) { } */ /* 递归全部可能解 while(...) { 判断是否可行 if(!check()) continue; backtrack(solution,t); 一些语句使状态返回 回溯 } */}...

2021-09-06 16:53:30 494

原创 c++ vector<int[n]>的问题

最近在使用vector<int[n]>时会报错,如下的程序#include<iostream>#include<vector>using namespace std;int main(){ vector<int[2]> tmp; int pos[2] = {0};// tmp.push_back(pos);}主要问题在push_back,因为vector的push_back不是真的将对象添加到容器中,而是拷贝构造的方

2021-08-26 16:07:44 393

原创 rapidjson 检测parse错误

在使用rapidjson::document的parse时,如果字符串json格式不正确不会立即出错,而在取document的元素时会导致程序崩溃,可以在parse后使用HasParseError函数检测是否出错在取元素时先判断是否有该元素,再判断是否是对应的类型#include "rapidjson/document.h"#include <iostream>using namespace std;int main(){ const char *json = "{\"name

2021-07-25 20:50:13 2806

原创 websocket html前端测试页面

用于测试websocket连接,可以向服务器发送消息并显示接受的消息<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">&l

2021-07-24 15:16:25 891

原创 tomcat websocket无法连接404问题

用tomcat部署了websocket项目后,测试对应的接口发现404,最后发现是servlet和tomcat版本不对应,下图是tomcat和servlet版本对应websocket对应的连接和注解的value对应,url为ws://host:port/项目名/value例:注解为@ServerEndpoint(value = “websocket”),host为本地,port为tomcat默认端口,uri为项目名加value,项目名为tempurl为ws://127.0.0.1:8080/temp

2021-07-24 15:06:21 1149

原创 动态规划 最长公共子序

动态规划 最长公共子序最长公共子序使用动态规划解决最长公共子序最长公共子串最长公共子序最长公共子序最长公共子序是寻找两个字符串中最长的子序,例如abbaba和abacaa的最长公共子序为abaa,最长公共子序不要求每个元素是连续的,但要求序列在两个字符串中是顺序的,区别于最长公共字串使用动态规划解决最长公共子序最长公共子串首先最长公共子串使用动态规划很好解决建立二维数组dp[m + 1]nj + 1] m为字符串1的长度,n为字符串2的长度初始化dp[i][j] = 0 ,i = 0 ,j

2021-05-30 22:09:10 169 1

原创 《STL源码剖析》obj * volatile * my_free_list

volatile意思易变的,用来修饰变量时也是提示编译器后面的变量随时都有可能改变,该变量将不会被优化,程序读取该变量直接从变量地址中读取数据,防止变量被优化后,变量改变而其他程序检测不到,出现不一致。...

2021-05-30 21:33:36 270

原创 C++分割字符串

C++字符串分割string.h库函数strtok、strtok_s、strtok_rstrtokstrtok_sstrtok_r自己编写spilt函数string.h库函数strtok、strtok_s、strtok_rstrtokstrtok_sstrtok_r自己编写spilt函数

2021-05-19 14:58:32 131

原创 单向扫描快速排序

#include <iostream>#include <time.h>#include <vector>using namespace std;int parition(vector<int> &array,int left,int right){ int tmp = array[left]; int i = left,j = left+1; while(j <= right) {

2021-05-09 14:56:15 139

原创 单向链表快速排序

#include <iostream>#include <time.h>using namespace std;typedef class node{public: int value; node *next;} * nodep;nodep linkedpartion(nodep left,nodep right){ nodep p = left; nodep q = left->next; int tmp = le

2021-05-09 14:55:07 118

原创 c++ static简单总结

c++ static简单总结静态全局变量静态局部变量静态函数静态数据成员静态成员函数静态全局变量全局变量加static,仅在该文件可见,其他文件定义同名变量不冲突,未初始化默认值为0静态局部变量局部变量加static,和全局变量存在静态存储区中,未初始化默认值为0,作用域是局部作用域,局部作用域结束后不会销毁,可以重新调用函数使用且值不变。静态函数静态函数仅在本文件可见,其他文件定义同名函数不冲突。静态数据成员同一个类只有一份静态数据成员静态数据成员不能被实例函数定义存储在静态存储区遵

2021-04-27 22:50:55 80

原创 二叉树空间复杂度为O(1)的中序遍历c++

二叉树空间复杂度为O(1的中序遍历 二叉树节点空间复杂度为O(1)的中序遍历二叉树节点typedef class BinaryTree{public: char ch; BinaryTree *parent; BinaryTree *LeftChild; BinaryTree *RightChild;} * BT;空间复杂度为O(1)的中序遍历BT last(BT root) //寻找以root为根的最左叶子节点{ while (root->

2021-04-25 17:05:23 241

原创 二叉树的四种遍历

二叉树的四种遍历二叉树前序遍历中序遍历后序遍历层次遍历二叉树二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。二叉树有四种遍历方式:前序遍历 后序遍历 中序遍历 层次遍历//二叉树节点typedef class BinaryTree{public: char ch; BinaryTree *parent; BinaryTree *LeftChild; BinaryTree

2021-04-25 16:45:08 502

原创 Redis缺点

Redis缺点一致性问题缓存穿透缓存击穿缓存雪崩一致性问题一致性问题是分布式常见问题,还可以再分为最终一致性和强一致性。数据库和缓存双写,就必然会存在不一致的问题。答这个问题,先明白一个前提。就是如果对数据有强一致性要求,不能放缓存。我们所做的一切,只能保证最终一致性。另外,我们所做的方案其实从根本上来说,只能说降低不一致发生的概率,无法完全避免。因此,有强一致性要求的数据,不能放缓存。摘自https://www.cnblogs.com/zuichuyouren/p/11123141.html最

2021-04-18 21:06:40 153

原创 Redis数据持久化

Redis数据持久化概述RDBAOF概述Redis和Memcache的一个重要区别就是Redis支持数据的持久化RDBrdb保存的文件是dump.rdb在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中。Redis会单独创建(fork)一个子进程来进程持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上一次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进程大规模数

2021-04-18 20:18:21 78

原创 c++数组快速排序

c++数组快速排序/*从小到大快速排序*/#include <iostream>using namespace std;void quickSort(int num[],int left,int right){ int l = left, r = right; int temp = num[l]; while(l < r) { while(num[r] > temp && l < r)

2021-04-17 11:31:24 847

原创 Redis事务机制

Redis事务开启事务:multi命令入队执行事务所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行放弃事务discard编译型异常(命令有错), 事务中所有的命令都不会被执行执行时异常, 如果事务队列中存在语法性错误,执行命令的时候,其他命令可以正常执行,错误命令抛出异常Redis的watchwatch可以监视一个数据 如果数据在执行事务前改变 则事务不会执行A线程 watch nameB线程 修改nameA线程执行事务修改name值

2021-04-16 21:42:27 85

原创 c/c++使用redis

c/c++使用redishiredis1、安装hiredis2、接口介绍c程序操作Redis代码hiredishiredis是Redis官方推荐的基于C接口的客户端组件,它提供接口,供c语言调用以操作数据库。1、安装hiredis进入Redis的源码包的deps/hiredismakemake installldconfig #使动态库在系统中更新生效2、接口介绍#include <hiredis/hiredis.h>// 该函数用来连接redis数据库,参数为ip地址和端

2021-04-15 22:47:55 3334

原创 redis五种类型操作

redis 五种类型:set集合 zset有序集合 list列表 string字符串 hash哈希redis 默认有16个数据库 默认使用0数据库select //选择数据库keys * //查看所有键值flushdb //清空当前数据库flushall //清空所有数据库string操作:set key valueget key //return valuegetrange key start end //return value from start to endsetrange k

2021-04-15 20:52:53 97

原创 链表冒泡排序和二路归并排序

链表冒泡排序和二路归并排序冒泡排序二路归并排序冒泡排序struct ListNode{ int val; ListNode * next;}ListNode * sort(ListNode * head){ ListNode *p1,*p2; //这里假设头节点存着链表长度 如果没有可以先一遍循环得到链表长度 for(int i = 0; i < head->val - 1; i++) { p1 = head->next; p2 = p1->next;

2021-04-11 18:18:14 152

原创 Tcp Udp总结

Tcp Udp总结文章目录Tcp Udp总结Tcp Udp概述Tcp三次握手连接为什么要三次握手Tcp四次挥手Tcp为什么可靠Tcp流量控制和拥塞控制Tcp和Udp适用情景Udp使用情景Tcp适用情景关于套接字编程里的listen和acceptTcp Udp概述Tcp是面向连接的可靠协议 基于字节流的Udp是面向非连接的不可靠协议 基于数据报的Tcp不会出现无序和丢包,而Udp会出现Tcp三次握手连接为什么要三次握手如果A第一次发送的连接请求报文未丢失而是发生了延时,而A发送的第二次连接请

2021-04-10 21:01:08 159

原创 javascript鼠标拖动的div模块

javascript鼠标拖动的div模块<html><head> <style type="text/css"> #divmove { background-color: red; width: 100px; height: 100px; position: absolute; top: 100px;

2021-04-08 00:22:22 128

原创 Socket 用getpeername获得对端ip地址

Socket 用getpeername获得对端ip地址getpeername函数的定义int getpeername(int __fd, sockaddr *restrict __addr, socklen_t *restrict __len)#代码//int fd; 对端的文件描述符struct sockaddr_in caddr;memset(&caddr,0,sizeof(caddr));socklen_t len = sizeof(caddr);getpeername(fd,

2021-03-30 21:28:05 969

转载 sha256 c++实现代码

sha256 c++实现代码sha256.h源文件转载 原文章地址忘记了sha256.h/** Filename: sha256.hpp* Author: L.Y.* Brief: SHA256算法实现* Version: V1.0.0* Update log: * 1)20191108-20191113 V1.0.0* 1、初次版本。* TODO: * Attention: * 1)输入信息中有中文时,得到的数字指纹与使用SHA256在线加密工具得

2021-03-30 20:55:36 1289

空空如也

空空如也

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

TA关注的人

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