自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

suoyudong的博客

c/c++技术

  • 博客(76)
  • 资源 (2)
  • 收藏
  • 关注

原创 解决windows打开github慢的问题

网上一大堆的解决方法,我试了很多,终于找到一个靠谱的了。推荐巨好用的工具:dev-sidecar这是一个开源的工具,由于电脑还没有工具打开github会很慢,可以上码云上搜索一下这个工具。码云:https://gitee.com/仓库中有安装步骤,下面就不再叙述。...

2021-07-24 17:53:00 325

原创 python2unicode编码和中文做比较报错:(UnicodeWarning: Unicode equal comparison failed to convert both arguments)

用python2写了个脚本,但是当用json中的数据做中文对比时会报错,解决方法如下:给文件头加如下代码,即可正常对比#!/usr/bin/env python# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf8')...

2020-11-06 15:39:38 739

转载 centos7下mysql-8.0.13 安装步骤

从这个链接学习的,记录一下:https://www.pianshen.com/article/1889352362/

2020-10-26 00:07:40 322

原创 解决问题:.../info/refs not valid: is this a git repository?

问题今天git clone一个项目的时候莫名出现这个报错:.../info/refs not valid: is this a git repository?解决方法1.如果是在windows下,直接打开浏览器重新进入一下git仓库,一定要重新输入一下账号和密码的那种登录。2.如果是Linux下,你如果是在当前项目中git clone别的项目,你可以把当前项目重新git pull 一下,重点是要重新输入账号和密码登录。当然你也可以用curl 带上username+password访问一下仓库都

2020-09-22 17:55:43 23953

原创 Git入门实践教程

前言今天才开始学习Git,之前一直是在上面找项目,没有实践过,想着之后工作是一定要用的,就趁着在家赶紧学起来,每天也开始commit,记录一下自己的学习过程,也会放一些自己做的一些小的项目上去。文章目录Git与Github的来历在GitHub上创建仓库Git与Github的来历学一个东西,可以先了解一下它的历史,可以更好的去向别人讲述它。Linux 之父 Linus 在 1991 ...

2020-09-01 07:21:06 189

转载 centos7安装redis

一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装[root@localhost local]# yum install -y gcc二、下载并解压安装包[root@localhost local]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz[root@localhost local]# tar -zxvf redis-5.0.3

2020-08-27 16:53:47 102

原创 Centos7下将vim打造成Golang的IDE

前言后端开发绕不过的就是Linux,想在Linux下编写Go语言进行开发,我想最好用的IDE应该就是Vim了吧。今天费点时间,将自己的Vim打造成Golang专用的IDE,Let do it!环境准备将你的vim升级到8.0以上因为要使用vim-go 的原因,它必须要求vim是8.0以上。删除旧版本:yum remove vimCentos7编译安装vim81.先下载依赖yum install gcc ncurses ncurses-develyum -y install gi

2020-08-17 15:29:59 1323

原创 Go Module使用教程

文章目录前言Go Module是什么?GO111MODULE创建一个新模块go mod 命令替换包go get 升级go mod vendor前言在Go1.11发布之后,其中最重要的变化之一是go module.刚开始接触总是对它不知所以然,在实践的过程中,感觉搞不清楚它是干嘛的,今天看了很多文章,记录一下Go Modules的使用。Go Module是什么?总结来说,它是一个项目依赖解决方案。原来我们把包都放在GOPATH里面,使用类似命名空间的包路径区分包,但是这种包依赖可能会造成生产环境

2020-08-10 22:10:07 1516

原创 记录Go iris v12安装的坑(cannot find package “github.com/russross/blackfriday/v2“)

前言最近学习go 的框架iris,然后就去iris的github去学习,文档写到很详细。不过,安装这一步,真的是坑啊!!!最近的版本是v12,根据wiki,安装也非常简单是这样的(下图),是不是非常简单?还很贴心的给了GOPROXY,可是!!!当go get之后,就出现两个cannot find package,一个是github.com/russross/blackfriday/v2另一个是github.com/CloudKit/jet/v4然后呢,无论你怎样去go get,或者删掉iri

2020-08-10 10:56:48 3800 6

原创 使用Goland写代码,最后如何在Centos7Linux环境下去部署运行?

前言Go语言入门菜鸡,一直在用Goland写代码,因为vim配置Go的开发环境简直不要太难,放弃了。一直很困惑,我如何在Windows下编写代码,然后再拿去Linux下去部署运行?原来一直以为需要把代码弄过去,然后编译,运行,不懂得交叉编译这回事,今天搞了一下,做个记录。编译当我们在Windows上用IDE把程序写好之后,想要打包部署到Linux上运行。使用cmd切换到当前项目目录下(main.go目录下),或者使用Goland的Terminal,然后执行以下命令:$ set GOARCH

2020-08-07 11:42:23 567

原创 《剑指offer》---Go语言实现

文章目录数组中重复的数字数组中重复的数字题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3解法一:简单解法:因为数字范围一定在0-n-1之间,表示可以使用哈希表来解决这个问题。建立一个数组切片number,长度为n,下标则表示0-n-1,初

2020-08-04 00:30:50 603

原创 Go语言实现简易记事本程序的增删改查操作,数据传输使用Json格式

Go语言实现记事本数据库操作实现增删改查数据传输使用JSon格式使用Postman进行接口测试这个记事本程序只是简易的实现,并没有实现前端的html界面内容,也没有使用框架,只是为了熟练GO语言Web操作而进行的小练习。首先在Mysql数据库建名为test的数据库,名为note的数据表,字段有三个,noteid,notename,content.go语言数据库引擎使用go-sql-driver.进行安装go get -u github.com/go-sql-driver/mysq

2020-08-03 21:42:08 570

原创 解决Mysql主键设置auto_increment,删除数据后,不是按正常顺序排序的问题

问题:MySql中,设置主键自动增长之后,删除数据发现主键增长不是按照正常的顺序排列。解决方法:1.删除原有的主键我现在有个note表为例,其中主键命名为Noteid.alter table note drop noteid;2.重新增加主键,并且设置为auto_incrementalter table note-> add noteid int not null auto_increment first,-> add primary key(noteid);这样.

2020-08-03 21:26:32 2411 2

原创 Go官方指南---《Web爬虫练习》

练习:Web 爬虫在这个练习中,我们将会使用 Go 的并发特性来并行化一个 Web 爬虫。修改 Crawl 函数来并行地抓取 URL,并且保证不重复。提示:你可以用一个 map 来缓存已经获取的 URL,但是要注意 map 本身并不是并发安全的!package mainimport ( "fmt" "sync")type Fetcher interface { // Fetch 返回 URL 的 body 内容,并且将在这个页面上找到的 URL 放到一个 slice 中。 Fe.

2020-07-27 17:58:20 389

原创 leetcode Datebase练习题

文章目录leetcode DataBase大的国家交换工资leetcode DataBase大的国家Description:Solutionselect name,population,area from Worldwhere area>3000000 or population>25000000这个应该算是最简单的题,哈哈哈,增加以下信心,就从这里开始。交换工资...

2020-04-29 11:03:23 131

原创 leetcode算法习题----动态规划系列

斐波那契数列1.斐波那契数列题目描述:斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) ...

2020-04-26 08:14:25 602

原创 Go语言爬虫出现403问题解决

前言最近在做慕课网上《Google工程师带你深度了解Go语言》中的项目,一个单任务版的爬虫。现在爬取了网页信息,解析了用户页面之后,出现了错误,如下Fetcher:errorfetching url http://album.zhenai.com/u/XXXX:wrong status code:403代码如下:resp, err := http.Get(url)现在将解决的过程...

2020-04-25 10:22:54 1745 3

原创 Go语言笔记---goroutine

文章目录并发轻量级线程(goroutine)---根据需要随时创建的“线程”通道---在多个goroutine间通信的管道并发并发是指在同一时间可以执行多个任务。Go语言通过编译器运行时,从语言上支持了并发的特性。Go语言的并发通过goroutine特性完成。goruntine类似于线程,但是可以根据需要创建多个goroutine并发工作。goroutine是由Go语言的运行时调度完成,...

2020-04-21 07:29:32 248

原创 用Sublime Text3创建一个完整的go项目

用Sublime Text3创建一个完整的go项目1.首先在GOPATH目录下的src目录中创建项目文件夹gotest,准备将它作为一个包供外部程序使用,创建文件main.go,编写程序main.go:package gotest //文件名和包名一致import ( "fmt")func Hello() { //想要被外部包使用,带头字母大写 fmt.Println("Hell...

2020-04-19 07:48:32 975

原创 Go语言笔记---反射学习

文章目录反射反射的类型对象反射的值对象反射反射是指程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换位内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取本身的信息。支持反射的语言可以在程序编译期将变量的反射信息,如字段信息、类型信息、结构体信息等整合到可执行文件中去,并给程序提供接口访问反射信息,这样就可以在程序运行期获取类型的反射信息,并且有能力修改...

2020-04-18 22:59:06 128

原创 Go语言学习笔记---接口

文章目录接口声明接口实现接口的条件理解类型和接口的关系接口的嵌套组合---将多个接口放在一个接口内在接口和类型之间转换接口Go语言中使用组合实现对象特性的描述。对外通过接口暴露能使用的特性。Go语言的接口设计是非侵入式的,接口编写者无需知道接口被哪些类型实现。而接口实现者只需要知道实现的是什么样子的接口。接口实现者不需要关系接口被怎样使用,调用者无需关心接口的实现细节。概念:接口是...

2020-04-16 07:56:08 139

原创 Go语言小示例---接口的使用

便于扩展输出方式的日志系统日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络。本例将搭建一个支持多种写入器的日志系统。package mainimport ( "errors" "fmt" "os")/*本例中定义一个日志写入器接口(LogWiter),必须遵循这个接口协议才能被日志器注册。日志器有一个写入器的注册方法*///...

2020-04-15 14:59:34 209

原创 GO语言学习笔记---结构体

结构体Go语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。结构体成员是由一系列的成员变量构成,这些成员变量也被称为字段。字段有一下特性:拥有自己的类型和值字段名必须唯一字段的类型也可以是结构体,甚至是字段所在结构体的类型。注意:Go语言中没有类的概念,也不支持类的继承等面向对象的概念。定义结构体定义格式如下:type 类型名 struct{字段1...

2020-04-15 09:17:12 263

原创 Go语言小示例---关于结构体的使用

二维矢量模拟玩家移动package mainimport ( "fmt" "math")type Player struct { currPos Vec2 //当前位置 targetPos Vec2 //目标位置 speed float32 //移动速度}type Vec2 struct { X, Y float32}//使用矢量加上另外...

2020-04-15 09:16:30 172

原创 秋招高频面试题---在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?比如zhihu.com解析:第一步应该是浏览器对用户输入的网址做初步的格式化检查,只有格式通过才会进入下一步。那么浏览器使用的是http还是https访问服务器呢?浏览器默认使用http协议,除非可以加上https,所以浏览器先进行URL补齐。浏览器请求本地DNS服务发出请求查询zhihu.com的IP地址,DNS则先查看自...

2020-04-01 12:17:49 363

原创 经历了残酷的秋招之后,我总结出了全面的HTTP面试题。

Http知识点HTTP 状态码HTTP的请求方法:GET和POST的区别?HTTP协议概念和特点:什么是长连接?什么是短连接?HTTPS的基本概念和工作原理HTTP与HTTPS有什么区别?说一下数字证书是什么?里面都包含着哪些内容?HTPP1.0和HTTP1.1的区别:HTTP2.0的特点:Session和Cookie以及Token区别:HTTP 状态码2XX 成功200 OK,服务器已成...

2020-04-01 12:14:27 208

原创 经历了残酷的秋招之后,我总结了全面的TCP/IP面试知识点

计算机网络知识点OSI七层模型计算机网络的五层协议体系结构TCP(传输控制协议)的主要特点TCP协议选项:标志位的含义UDP(用户数据报协议)的主要特点TCP和UDP的区别TCP和UDP的应用场景:如何使UDP实现可靠传输?(基于自动重传请求ARQ的实现)为什么说UDP比TCP更有优势?为什么像即时通讯会选用UDP?而不是采用TCP进行实现?什么是连续ARQ协议?TCP如何保证可靠传输?什么是超时...

2020-04-01 11:53:25 320

原创 图算法-拓扑排序

拓扑排序应用场景:例如选课,施工过程不可能出现两个课程的先选可都是互相或者施工中的两个项目形成先行必要的条件,那么这种应用场景下的图必须是无环图。AOV网(Activity On Vertex Network):用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,称之为AOV网。什么是拓扑排序?拓扑排序就是说,在一个有n个顶点的有向图中,V中的顶点序...

2020-04-01 11:12:13 396

原创 数据结构学习之---图的代码实现

图的基本概念图:是由顶点的集合及顶点之间的关系集合(边)组成的一种数据结构。Graph=(V,E);(V表示顶点,E表示边)两个顶点之间没有方向,称这条边为无向边。组成的图为无向图。如果任意两个顶点之间都存在边,则称该图为无向完全图。具有n个顶点的无向完全图有n(n-1)/2.顶点之间有方向,称为有向边,组成的图为有向图。入度:箭头所指的顶点出度出箭头的顶点度数和边数的关系:度数...

2020-04-01 11:05:36 441

原创 算法学习---kmp算法详解

kmp算法先说怎样引出的kmp算法之前用的都是朴素模式匹配算法,它的基本思想就是:即从主串的第一个字符开始匹配,一直到最后匹配不上的话,则回到主串的第二个字符进行匹配。就这样一直循环,直到找完所有主串,返回结果。因为传统的字符串匹配算法会进行很多重复的运算,复杂度太高。所以就引出了kmp算法解决这个问题。KMP算法什么是KMP算法?KMP算法是由三位科学家的开头字母命名而成。...

2020-04-01 10:59:05 231

原创 数据结构---树(用C++代码实现)

树基本概念分类:1)空树. n=0时称为空树2)非空树.特点:(1)有且只有一个特定的称为根的结点.(2)其余结点分为m个互不相交的有限集,并且称为根的子树.树的深度:树中结点的最大层次称为树的深度或高度.结点的度:结点拥有的子树数称为结点的度.二叉树:由一个根结点和两个互不相交的子树组成.结点的数=总分支数+1特点:(1)每个结点最多有两颗子树(2)左子树和...

2020-04-01 10:48:26 5483 2

原创 Go语言学习笔记---函数的详细用法

文章目录函数声明函数函数变量---把函数作为值保存在变量中匿名函数---没有函数名字的函数函数函数是组织好的、可重复使用的,实现单一或者相关功能的代码段,其可以提高应用的模块性和代码的重复利用率。函数本身可以作为值进行传递支持匿名函数和闭包函数可以作为接口声明函数func 函数名(参数列表)(返回参数列表){函数体}1.参数类型的简写在参数列表中,如有多个参数变量...

2020-03-31 22:44:00 269

原创 Go语言笔记---流程控制

条件判断正常用法,和C语言不同,if后面不需要加括号ten :=11if ten>10{}else{}特殊写法://Connect()是一个带有返回值的函数,err:=Connect()是一个语句。//err!=nil才是if的判断表达式if err:=Connect();err !=nil{}for三种用法:1.结束循环时带可执行语句的无限循环var ...

2020-03-23 18:14:29 97

原创 Go语言学习笔记---list的基本使用

列表—可以快速增删的非连续空间的容器1.初始化列表变量名 :=list.New()var 变量名 list.List2.在列表中插入元素双链表支持从队列前方或者后方插入元素,分别对应的方法是PushFront和PushBack.这两个方法都会返回一个*list.Element结构。示例:l := list.New()l.PushBack("fist")l.PushFr...

2020-03-22 08:31:02 465

原创 Go语言学习笔记---映射(map)的基本使用

map—建立事务关联的容器应用场景:需要使用任意类型的关联关系时,需要用到映射。如学号和学生,名字与档案。底层实现:使用散列表实现。散列表实现,所以查找时间复杂度为O(1),最坏情况为O(n),n为元素总数。1.添加关联map并访问关联和数据。定义:map[keyType]ValueType示例:m := map[string]string{"W":"forward",...

2020-03-22 08:08:00 196

原创 Go语言学习笔记----切片

切片—动态分配大小的连续空间Go语言切片内部结构包含地址、大小和容量。切片一般用于快速地操作一块数据集合。

2020-03-21 18:39:20 185

原创 Go语言学习笔记------字符串练习实例

Base64编码—电子邮件的基础编码格式Base64编码是常见的对8bit字节码的编码方式之一。Base64编码可以使用64个可打印字符来表示二进制数据,电子邮件就是使用这种编码。Go语言标准库自带了Base64编码算法。示例如下:package mainimport ( "encoding/base64" "fmt")func main() { //发送消息的内容 me...

2020-03-21 08:39:51 155

原创 Go语言学习笔记-----数组

数组----固定大小的连续空间数组:一段固定长度的内存区域。数组声明时就确定,使用时可以修改成员,但是数组大小不可变化。声明数组数组声明格式如下:var 数组变量名 [元素数量]TT表示任意基本类型,包括数组本身。当类型为数组本身时,可表示二维数组例如:var team [3]stringteam[0] ="hammer"team[1] ="soldier...

2020-03-17 22:05:16 114

原创 Go语言小示例----输出正弦(Sin)图像

设置背景色 //图片的大小 const size = 300 //根据给定的大小创建灰度图 pic := image.NewGray(image.Rect(0, 0, size, size)) //遍历每个像素 for x := 0; x < size; x++ { for y := 0; y < size; y++ { //填充为白色 pic.SetGr...

2020-03-16 18:52:04 735

原创 C++11新特性知识点整理

c++11有哪些新特性?关键字及语法:auto 关键字:编译器可以根据初始值自动推导出类型。我们不必费心去推导复杂表达式的类型。但是需要注意几点:使用auto关键字的变量必须进行初始化。auto关键字不能用于函数传参以及数组类型的推导。(数组类型会推导为指针)可能存在二义性,例如,auto s=“abc”,s是一个const char*而不是string 类型。代码跨平台性降低,因...

2020-03-15 22:59:52 139

memwatch头文件

memwatch的头文件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-05-23

检验内存泄漏memwatch源码

开发中用于内存泄漏memwatch源码文件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-05-23

空空如也

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

TA关注的人

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