自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1772)
  • 论坛 (1)
  • 收藏
  • 关注

转载 A星算法

A星算法就是试图在地图中找到一条最短路径,但不保证一定存在。搜索区域(The Search Area)我们假设某人要从A点移动到B点,但是这两点之间被一堵墙隔开。如下图你应该注意到了,我们把要搜寻的区域划分成了正方形的格子。这是寻路的第一步,简化搜索区域。曼哈顿距离3DA星寻路算法—超详细的例子可视化demo来源...

2020-09-13 20:55:33 76

转载 多线程搜索与排序

多线程搜索数组和排序在实际开发中是一个很常见的场景,我们可能会通过数组保存一些业务数据,通过搜索达到自己想要的数据或者对数据按照一定的业务规则排序,而在技术选择上一般最常见的技术就是for循环遍历和各种排序算法,这种搜索/排序技术很简单,而我们今天将要探讨的是通过多线程搜索和排序,如何利用多线程的优势去高效的完成搜索和排序是本篇博客聚焦的重点...

2020-07-22 16:47:23 67

转载 udb基本套接字编程:sendto、recvfrom

UDP客户/服务器程序调用如下:客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地(服务器)的地址作为参数。服务器不接受来自客户的连接,只管调用recvfrom函数,等待某个客户的数据到达,recvfrome将与所接受的数据报一道返回客户的协议地址,因此服务器可以把响应发送给正确的客户...

2020-07-16 13:12:47 90

转载 java中的各种锁详细介绍

java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展示出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关只是。下面给出本文内容的总体分类目录1、乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应用。

2020-07-13 17:22:04 148

转载 java 泛型详解

1、概述泛型在java中有很重要的地位,在面向对象编程以及各种设计模式中有非常广泛的应用。什么是泛型?为什么要用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的参数变量,此时类型也定义成参数形式(可以称之为类型形参)泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指

2020-07-09 14:08:03 86

转载 盘点适合入门学习的C/C++开源项目

C项目名称: C项目简介: 是的,你没有看错,这个项目的名字就是单个字母C。C是一个宝藏项目,可以说是学习数据结构和刷算法题的利器,因为里面包含了几乎各种基础算法、数据结构、以及LeetCode算法题的C语言实现。具体包括:客户端/服务器问题统计方法问题进制转换问题各种数据结构:数组、链表、字典、二叉树、堆、栈、队列、哈希、图等等搜索/查找问题排序问题LeetCode习题其他杂项问题注意,下图中只是截取了一部分数据结构和算法题的具体实现:对于我们的作用: 可以帮助我们更好的学习数据

2020-07-01 09:57:25 575

转载 如何理解动态规划?----知乎

看过的最容易理解的动态规划因为禁止转载转载二https://www.zhihu.com/question/23995189超级好的平台https://oi-wiki.org/dp/dynamic/

2020-04-24 09:24:22 184

原创 声明

声明:此博客为博主记录笔记所用,博主会尽量给出写博客时参考过的资料链接,如有侵权或者疏落,请联系博主删除更改https://my.csdn.net/my/follow

2018-07-19 20:19:22 211

转载 git:git detached HEAD 状态最优雅的解救

detached HEAD 状态是指 HEAD 指针不指在任何分支的索引(比如 master、dev)。进入 detached HEAD 状态后 git 会创建一个临时分支。如果想退回直接 git checkout 想要的分支,最优雅没有之一。否则操作后,要 git add、git commit 然后 git checkout -b 新的分支,不然临时分支会被 git 删除。例子:$ git branch -l <----- 当前是 master 分支.

2021-02-23 09:05:05 26

转载 C/C++编程:ffmpeg学习(windows + vs2019 + cmake + vcpkg)

准备vcpkg安装ffmpeg1、vcpkg:win10安装使用 vcpkg2、安装 ffmpegvcpkg install ffmpeg:x64-windowsvs中创建一个工程使用1、cmakelist.txt# CMakeList.txt: cmake_test 的 CMake 项目,在此处包括源代码并定义# 项目特定的逻辑。#cmake_minimum_required (VERSION 3.8)# SET(CMAKE_TOOLCHAIN_FILE "C:/User

2021-02-22 14:49:30 42 2

转载 git:忽略文件(.gitignore)

https://blog.csdn.net/baidu_41388533/article/details/108411102

2021-02-20 14:48:03 26

转载 C/C++编程:标准库类型string

标准库类型string表示可变长的字符序列头文件#include <string>using std::string初始化直接初始化和拷贝初始化如果使用等号=初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右边的初始值拷贝到新创建的对象中去如果不使用等号,则执行直接初始化当初始化只有一个时,使用直接/拷贝初始化都可以当初始值有多个时(比如s4),一般来说只能使用直接初始化:当初始值有多个时,如果要用拷贝初始化,则必须显示的创建一个临时对象用于拷贝:.

2021-02-10 13:07:25 47

翻译 git:远程仓库的使用

查看远程储存如果你想要查看你已经配置的远程仓库服务器,可以运行git remote命令。它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字(git clone会自行添添加远程仓库):$ git clone https://github.com/schacon/ticgitCloning into 'ticgit'...remote: Reusing existing pack: 1857, done

2021-02-08 10:20:57 48

转载 git:git tags

作用git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)列出标签在 Git 中列出已有的标签非常简单,只需要输入 git tag (可带上可选的 -l 选项 --list):$ git tagv1.0v2.0例如,Git 自身的源代码仓库包含标签的数量超过 500 个。 如果只对 1.8.5 系列感兴趣,可以运行:$ git tag -l "v1.8.5*"v1.8.5v1.8.5-rc0v1.8

2021-02-07 11:07:24 43

转载 C/C++:遍历目录并删除超过7天的文件

#include <iostream>#include <dirent.h>#include <cstring>#include <sys/stat.h>static int RemoveFile(const char* filename ) { struct stat buf; int result = stat(filename, &buf); if (result != 0) { perror(

2021-02-07 09:19:01 54 1

转载 Linux:安装Typora

安装$ wget https://typora.io/linux/Typora-linux-x64.tar.gz $ tar xzvf Typora-linux-x64.tar.gz $ cd bin$ sudo cp -ar Typora-linux-x64 /opt$ cd /opt/Typora-linux-x64/$ ./Typora ./Typora: error while loading shared libraries: libXss.so.1: cannot open sha

2021-02-06 11:38:33 40

翻译 git:改写提交

git中主要有两种方式可以用来撤消变更git resetgit revertgit reset通过把分支记录回退几个提交记录来实现撤消改动。相当于“改写历史”。git reset向上移动分支,原来指向的提交记录就跟从来没有提交过一样注意:git reset仅作用于本地,对远程分支是不起作用的,如果想要对远程分支起作用,请用git revert如左图Git仓库中:当前有三个提交记录C0、C1、C2当前有一个主分支main,指向最近的提交记录C2因此,当前HEAD状态为HEAD

2021-02-05 15:50:42 52

翻译 git:如何在git提交树上前后移动

HEADcat .git/HEAD 查看HEAD的指向如果HEAD指向的是一个引用,可以通过git symbolic-ref HEAD查看它的指向HEAD:HEAD是一个对当前检出记录的符号引用—》也就是指向你正在其基础上进行工作的提交记录,也就是说HEAD总是指向当前分支上最近一次提交记录。大多数修改提交树的Git命令都是从改变HEAD的指向开始的如下图Git仓库中:当前有两个提交记录初始提交C0其后可能包含某些有用修改的提交C1注: 每次提交都会生成一个hash值。我

2021-02-05 15:18:32 32

转载 Linux C/C++编程:执行终端命令

#include<string>#include<cstdio>#include<cstring>#include<iostream>using namespace std;int main(){ char line[300]; FILE *fp; string cmd = "ping www.baidu.com"; int count = 0; // system call const char

2021-02-04 09:59:32 40

转载 C/C++编程:异步编程入门

背景在产品端开发软件多了,免不了遇到多线程处理的情况,这也符合多核、异构的现代化硬件发展的需求。多线程处理中常见的有两种应用情形:并行化算法处理。利用OpenMP/TBB等CPU并行库,或者CUDA/OpenCL等GPU并行库,将问题拆分成多个相互独立的子问题,通过并行库提供的原语来进行组织,调度多个子线程并行处理,再利用库提供的规约等操作,收集处理各个线程反馈的结果,形成最终的结果。在这类应用中,线程之间的数据交换是低频行为,尤其在算法设计阶段会刻意的避免线程之间的信息传递已达到高效处理的效果。本文

2021-02-03 18:05:45 34

翻译 C/C++编程:uSockets与uWebSockets【坑了,不要看,这玩意太坑了】

系统:centos7编译器:clionuSocketsuSockets是µWebSockets使用的跨平台异步联网和事件基础库。它可以在Linux,macOS,FreeBSD和Windows上运行。大多数是C11,而一些可选部件是C ++ 17。github-uSockets 586编译编译生成静态文件$ git clone https://github.com/uNetworking/uSockets.git$ cd uSockets/$ makerm -f *.occ.

2021-02-03 16:25:49 59

翻译 C/C++编程:WebSocketpp(Linux + Clion + boostAsio)

WebSocket ++是一个C ++库,可用于实现WebSocket功能。该项目的目标是提供一种可移植,灵活,轻量级,低级和高性能的WebSocket实现。WebSocket ++并不打算单独用作Web应用程序框架或功能全面的Web服务平台。这样的组件,示例和性能调整都适合作为WebSocket客户端或服务器进行操作。

2021-02-03 15:22:16 72

转载 C/C++编程:变量

变量提供了一个具名的、可供程序操作的存储空间。C++的每个变量都有数据类型:数据类型决定了变量所占空间的大小和布局方式、能存储的值的范围、能做什么运算变量的初始化初始化:创建变量并赋予一个初始值std::string string("25457cdssq"); // string字面值初始化int u1 = 0;int u2 = {0};int u3 = 赋值:把对象的当前值擦除,然后用一个新值代替...

2021-02-02 11:50:34 42

转载 git:git log查看提交历史

查看提交历史在某个项目中运行git log,可以查看提交历史默认按照时间先后顺序列出所有的提交,最近的更新排在最上面列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。如果想要不同于默认格式的方式展示提交历史,可以使用--pretty。选项有oneline,short,full 和 fullergit log --pretty=onelineformat,可以定制记录的显示格式$ git log --pretty=format:"%h - %

2021-02-01 18:04:19 50

转载 C/C++编程:基本内置类型

C++定义了一套包括算术类型和空类型(void)文章目录算术类型(arithmetic type)分类尺寸带符号类型、无符号类型如何选择类型类型转换算术类型(arithmetic type)分类分为两类整型浮点型尺寸除了bool类型和字符类型之外,算术类型的尺寸在不同的机器上可能不一样的。(1)bool类型: 取值真或者假(2)字符类型:char是最基本的字符类型,一般来讲,char的大小和一个机器字节一样wchar_t、char16_t、char32_t等用于扩展字符集w

2021-02-01 17:29:03 38

转载 C/C++编程:输入输出

C++语言并未定义任何输入输出(IO)语句,而是使用了一个全面的标准库提供IO机制。一般我们只需要了解IO库中一部分基本概念和操作就可以满足需求了最基本的库是iostream。两个基础类型iostream包含了两个基础类型istream和ostream,分别表示输入流和输出流一个流就是一个字符序列,是从IO设备读出或者写入IO设备的术语“流”可以理解为:随着时间的推移,字符是顺序生成或者消耗的四个标准输入输出对象标准库定义了4个IO对象。标准输入cin:用来处理输入标准输出cout:

2021-02-01 16:34:32 61 2

翻译 git:本地提交

https://learngitbranching.js.org/?NODEMO=&locale=zh_CNgit commitgit 仓库中的提交记录保存的是你目录下所有文件的快照git 希望提交记录尽可能轻量,因此你每次提交时,它并不会盲目的复制整个目录。条件允许的情况下,它会将当前版本与仓库中的上一个版本进行对比,并将所有差异打包到一起作为一个提交记录git还保存了提交的历史记录。这也是为什么大多数提交记录的上面有父节点的原因git branchgit branch&lt.

2021-02-01 14:06:59 64

转载 C/C++编程:libwebsockets(win10+vs2019)

github uWebSockets — 12.2K使用vcpkg安装uWebSocketsvcpkg install uwebsockets:x64-windowsvs20191、创建一个cmake工程

2021-02-01 10:46:21 70

转载 Linux:tar 命令显示进度条

实现该功能需要安装 pv,然后把需要处理的数据通过管道传给 pv,最后再进行操作。传给 pv 的目的是为了知道已经处理的数据量大小,同时需要通过 -s 指定总共需要处理的数据量大小。pv 的安装一般的软件管理工具都有提供:centos 下 yum install pvubuntu : apt-get install pvmac:brew install pvpv 的详细用法可参考:https://linux.die.net/man/1/pv压缩mac:tar -cf - questi

2021-01-29 19:36:31 100

转载 Qt:日志重定向窗口

日志重定向到窗口封装类1、logbrowser.h#ifndef LOG_BROWSER_H#define LOG_BROWSER_H#include <QWidget>#include <QVBoxLayout>#include <QTextBrowser>#include <QPushButton>#include <QCoreApplication>#include <QDebug>#include &lt

2021-01-29 14:09:55 54

翻译 Qt:如何在C++类使用中信号与槽

1、创建一个工程2、添加一个C++类。一个普通的C++类可能是这样的:class Counter{public: Counter() { m_value = 0; } int value() const { return m_value; } void setValue(int value);private: int m_value;};如果我们想要及时知道Counter的值改变情况,那么在Qt中我们应该怎么做呢?我们先来添加一个类修改co

2021-01-28 17:19:29 66

转载 Qt:call to non-static member function without an object argument

错误:调用不带对象参数的非静态成员函数。原因:类没有实例化 。举个栗子,①例如: // 自定义了一个类Student,里面有个函数getAge() class Student { public: int getAge(); };出现这个错误的原因,也许是你在调用函数getAge()的时候这样操作: Student::getAge();或者这样操作: Student.getAge();改正方法一:先实例化一个对象 Student XiaoWang; /.

2021-01-28 17:08:48 62

翻译 Qt:信号与槽理论

信号与槽用于对象之间的通信。信号和槽机制是Qt的核心特性,也是与其他框架提供的特性最大不同的部分。Qt的元对象系统使得信号与槽成功可能在GUI编程中,当我们更改一个小部件时,我们通常希望通知另一个小部件。更一般的说,我们希望任何类型的对象能够相互通信。比如,如果用户单击了Close按钮,我们可能希望调用窗口的Close()函数。一般语言是使用回调来实现这种通信。回调函数是一个指向函数的指针,所以如果你想要一个处理函数通知你一些事情,你可以将一个指向另一个函数(回调函数)的指针传递给处理函数。处.

2021-01-28 16:42:26 56 1

转载 Qt:编译警告warning: unused parameter参数未使用

编译中出现以下警告:warning: unused parameter ‘arg1′ [-Wunused-parameter]原因是由于函数参数未使用,这在程序当中有时候很正常;解决:在pro工程文件最后加入如下代码:QMAKE_CXXFLAGS += -Wno-unused-parameter...

2021-01-28 15:21:57 74

转载 Qt:cannot open output file debug/xxx.exe:Permission denied的解决方案

有的时候,运行刚刚运行好的QT程序,会出现:下面的窗口会报错:cannot open output file debug/xxx.exe:Permission denied现在说几个解决方案:1、启动任务管理器,在进程 — 应用中找到你在编写的程序将其进程结束后再次运行即可2、关闭编译器,重新启动3、电脑重新启动...

2021-01-28 14:57:02 26

转载 Qt:编译出现cc1plus.exe: out of memory allocating 65536 bytes问题

QT中增加资源文件过大时,会编译不过,报错:cc1plus.exe: out of memory allocating 1073745919 bytes使用qrc资源文件,也就是在QT的工程中添加资源文件,就是添加的资源文件(如qrc.cpp)会直接被存放到静态数组中,从而一直占用内存,使内存的利用率不高。有的时候如果资源过大,可能编译都无法通过,会造成out of memory的错误。解决方法:在工程PRO文件中,添加:CONFIG += resources_big ...

2021-01-28 14:17:08 42

转载 Qt:添加资源文件

鼠标点击工程文件目录右键选择 “添加新文件…”在模板中选择 Qt–>Qt Resource File资源名称,不要有中文, 路径默认保持工程目录即可点击完成:选中 res.qrc 资源文件鼠标右键选择 “Open in Editor” 打开资源编辑区在编辑区首先添加前缀添加完前缀后才可以选择添加文件选择要使用的资源文件,即复制资源文件路径#include "mainwindow.h"#include "ui_mainwindow..

2021-01-28 14:02:42 40

转载 git:提示‘The file will have its original line endings in your working directory’

原因:Git默认配置替换回车换行成统一的CRLF,我们只需要修改配置禁用该功能即可。解决:git config --global core.autocrlf false

2021-01-28 11:43:13 30

原创 Qt:switch

#include <QCoreApplication>#ifndef FALLTHROUGH#if __has_cpp_attribute(fallthrough)#define FALLTHROUGH [[fallthrough]]#elif __has_cpp_attribute(clang::fallthrough)#define FALLTHROUGH [[clang::fallthrough]]#else#define FALLTHROUGH#endif#endif

2021-01-28 10:24:59 28

转载 netdata:proc/stat

proc/stat文件解析proc/stat 该文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。不同内核版本中该文件的格式可能不大一致,以下通过实例来说明数据该文件中各字段的含义。$ cat /proc/stat//CPU指标:user,nice, system, idle, iowait, irq, softirqcpu 41470 33 12790 159518 8654 0 373 0 0 0cpu0 20650 15 6220 79957 4281

2021-01-27 20:22:44 33

空空如也

Ocean&&Star的留言板

发表于 2020-01-02 最后回复 2020-09-27

空空如也

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

TA关注的人 TA的粉丝

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